Best way is to pass a reference to the array, then dereference it in the subroutine. Like this:
use strict; my @array = qw(a b c); mysub(\@array); sub mysub { my @array = @{$_[0]}; foreach (@array) { print $_ } }
Update: Just read Prasad's post. You can just pass the raw array to the subroutine, in which case @_ in the sub is the content of the array. I prefer to use a reference to make it very explicit that this is a single variable - not a sequence of parameters. Neither method is more correct than the other, although Prasads is simpler.
In reply to Re: passing arrays to subroutines
by g0n
in thread passing arrays to subroutines
by Anonymous Monk
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |