in reply to Stumped when passing barewords

I'm surprised you're not getting the dreaded "prototype too late" warning. That may be the real bug here.
use strict; use warnings; foo(2,3,4); sub foo($$$) { print "@_", $/ } __OUTPUT__ main::foo() called too early to check prototype at - line 3. 2 3 4

--
[ e d @ h a l l e y . c c ]

Replies are listed 'Best First'.
Re: Re: Stumped when passing barewords
by broquaint (Abbot) on Apr 22, 2004 at 13:53 UTC
    This is because in your example the call to foo can be discerned at compile-time, whereas subroutine calls within other subroutines can't due to perl's dynamic nature, hence the lack of use strict 'subs must exist'.
    HTH

    _________
    broquaint