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


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]