http://qs321.pair.com?node_id=641618


in reply to Forcing list context of passed parameters

A prototype is not just documentation. Don't use it if you don't mean it!

Having said that, here are two suggestions:

# honour the prototype: print foo( one => qw( two three four ) ), "\n";

Since you consider the prototype valuable as documentation, you will likely value the documentation of setting the first argument apart in the call as well.

# bypass the prototype: print &foo( qw( one two three four ) ), "\n";

While not recommended in this situation, it may be useful with arguments from other expressions, particularly function calls:

# bypass the prototype: print &foo( bar(@args) ), "\n";

But as you've been told, it is likely better to just give up this use of prototypes.

print "Just another Perl ${\(trickster and hacker)},"
The Sidhekin proves Sidhe did it!