sub foo($) { print "foo: $_\n" for @_; return "returned from foo"; } sub bar { print "bar: $_\n" for @_; } bar foo 1, 2; __END__ # with prototype on foo: foo: 1 bar: returned from foo bar: 2 # without prototype: foo: 1 foo: 2 bar: returned from foo