Exactly.  For those of you playing along at home, the way that you would do
this is something like this:

##############################

my @array = qw(one two three);
my %hash = (first => 'Tim', last => 'Johnson', geek => 'yes');
my $scalar = "This is my string.\n";

myFunc(\@array,\%hash,$scalar);

sub myFunc{
  my($aRef,$hRef,$scalar) = @_;

  print "Here are the elements of \@aRef\n";
  foreach(@{$aref}){
    print "  $_\n";
  }
  print "\n";

  print "Here are the keys and values of \%hash\n";
  foreach(sort keys %{$hRef}){
    print "  $_ => $hRef->{$_}\n";
  }

  print "\$scalar = \"$scalar\"\n";
}

####################################


-----Original Message-----
From: David Buddrige
To: [EMAIL PROTECTED]
Sent: 11/20/02 10:32 PM
Subject: Re: passing an array and a hash to a subroutine.

Hi all,

I have figured out the solution to the problem below is to use an array 
of references to the various objects that I want to pass into the 
subroutine.

thanks guys

David.

David Buddrige wrote:

> Hi all,
> 
> I want to write a subroutine that takes an array and a hash as input 
> parameters and then does some work on them.  I can't seem to determine

> how to do this however; it seems that with a subroutine, all you can 
> pass is a single array ( which appears as @_ ) to the subroutine.
> 
> The program I am trying to write is below:
> 
> 
> 
> #!/usr/bin/perl
> 
> sub mysub
> {
>     @my_array = @_;
>     %my_hash = %_;
> 
>     print "Print the array\n";
> 
>     foreach (@my_array)
>     {
>     print "$_ \n";
>     }
>     print "Now print the hash\n";
> 
>     print $my_hash{"first"};
>     print $my_hash{"second"};
>     print $my_hash{"third"};
> }
> 
> 
> 
> my %the_hash;
> my @the_array;
> 
> $the_array[0] = 5;
> $the_array[1] = 43;
> $the_array[2] = 78;
> 
> $the_hash{"first"} = "number1\n";
> $the_hash{"second"} = "foo\n";
> $the_hash{"third"} = "abc\n";
> 
> mysub (@the_array,%the_hash);
> 
> 
> 




-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to