getInfo $scalar, @array, %hash;
####
#!/usr/bin/perl
package Foo;
use Exporter;
our @ISA = qw(Exporter);
our @EXPORT = qw(getInfo);
sub getInfo ($\@\%) {
my $scalar = shift;
my $array = shift;
my $hash = shift;
print "scalar = '$scalar'\n";
print "array = $array\n";
print "hash = $hash\n";
print '('.join(', ',map{"'$_'"} @$array).")\n";
print "$_ => $hash->{$_}\n" for keys %$hash;
push @$array, 'unexpected';
}
1;
__END__
# calling programm foo.pl
#!/usr/bin/perl
use Foo;
my $scalar = 'string';
my @array = qw(di da doh);
my %hash = (foo => 'bar', baz => 'quux');
getInfo $scalar, @array, %hash;
print "passed array: ".join(', ',map{"'$_'"} @array).")\n";
__END__
# output
scalar = 'string'
array = ARRAY(0x8190b74)
hash = HASH(0x81677bc)
('di', 'da', 'doh')
baz => quux
foo => bar
passed array: 'di', 'da', 'doh', 'unexpected')
####
sub getInfo {
my $scalar = shift;
my %hash = @_;
}