in reply to interesting prototype

Passing arrays or hashes to a subroutine would flatten their content into one long list saved in @_, sometimes this might be unwieldy so you'd need to pass these by reference instead, as is done in the prototype you mention above, this way each list would be passed and preserved as distinct unflattened member of @_..
my @array1=qw(something or something); my @array2=qw(Another Something); showElement(\@array1, \@array2); #by reference sub showElement{ foreach $element (@_){ print "Unreferenced: $element\n"; print "Referenced: @$element\n"; } }
On the other hand, the passed lists would've been flattened into one large @_ if you pass them as follows:
my @array4=qw(separate and yet); my @array5=qw(flattened it); showElements(@array4, @array5); #as-is sub showElements{ foreach $element(@_){ print "$element "; } }
You might wanna also see the "prototype" section in perlsub..


Excellence is an Endeavor of Persistence. Chance Favors a Prepared Mind.