in reply to eval strings non reentrant?
So, when the Perl syntax is parsed, first it will check if we have a sub with that name, if not, it will treat it as a string. As you can see, in your code, sub foo will return the string "foo".foo = sub foo {} foo = string "foo" foo = IO handler *foo foo = constant, that actually is: sub foo { "constant" }
Next time, when calling a function, always use () or &:
Take a look in perlsub... And http://perldoc.com is your friend.foo() # or &foo # that is the same of foo(@_) # or just to be explicit: &foo()
Now about the messages of the "use strict" & "use warning" corporation, forget, since know that we need to use that doesn't means that we are goo programmers. There's a lot of things that we can't do with all the strict options enabled, and with all the warnings enabled. And Perl is here to let the developer to be free.
But use at least "use strict qw(vars)" will save you a lot of time.
Graciliano M. P.
"Creativity is the expression of the liberty".
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Re: eval strings non reentrant?
by gmishra (Sexton) on Jun 02, 2004 at 06:25 UTC | |
by gmpassos (Priest) on Jun 02, 2004 at 06:46 UTC |