http://www.perlmonks.org?node_id=541208


in reply to my $x or my ($x)

Here's a popular use of the list context:

sub foo { my ( $x, $y, $z ) = @_; # ... }

You can mix scalars with other types:

sub say { my ( $x, %param ) = @_; # ... } &say( "Hello", name => "world" );

The following example won't work as you could expect, because all the arrays will be flatenned into the same one:

sub bar { my ( @a, @b ) = @_; # wrong! # ... } &bar( @array1, @array2 ); # wrong!

The solution is to use references, but we still can use the list context:

sub bar { my ( $a_ref, $b_ref ) = @_; # ok # ... } &bar( \@array1, \@array2 ); # ok