sub foo { while (@_) { my $var = shift; my $val = shift; print "var = $var; val = $val\n"; } } my @array = (a=>1, b=>2, c=>3); foo(@array); #### my ($var, $val); for (($var, $val) = each %{@_}) { print "var = $var; val = $val\n"; } #### Bizarre copy of ARRAY in leave at arrays.pl line 14, chunk 5.