tadman has asked for the wisdom of the Perl Monks concerning the following question:

Quick quiz: What is the output from the following program?
#!/usr/bin/perl -w use strict; sub foo($) { print "$_[0]\n"; } my $foo = 'foo'; my @foo = ($foo); foo($foo); foo(@foo); foo($foo[0]);
If you figured there was no difference, you're in for a surprise. With a regular subroutine, this is what happens, but prototype declaration makes things quite different.

Although it makes sense in a strange kind of way, why can't @foo be treated as an implicit list for DWIM purposes?