in reply to sub routine help
Prototypes alter parsing rules, alter the context in which arguments are evaluated, and limit what operators appear as arguments. Since those are all compile-time effects, prototypes have no run-time effects.
This means that $subref->() doesn't care if the referenced sub has a prototype or not.
sub foo(\@) { ...} foo(@a); # Passes \@a my $subref = \&foo; $subref->(@a); # Passes $a[0]
In Section
Seekers of Perl Wisdom