Beefy Boxes and Bandwidth Generously Provided by pair Networks
Just another Perl shrine
 
PerlMonks  

Re: NEWBIE Brain Teaser #2, by nysus

by snafu (Chaplain)
on Apr 16, 2001 at 08:22 UTC ( #72765=note: print w/ replies, xml ) Need Help??


in reply to NEWBIE Brain Teaser #2, by nysus

Well, I cheated and ran the script to see what would happen.
But I will offer a guessed explanation.

The first script I ran was as is shown above. My output was:

"In the beginning there was , in the end there will be . "

B: I believe the output was this way because when the subroutine
was called via the subroutine(); nothing was passed to the subroutine via the '()' thus there
were no valid local (to the subroutine) variables called
'_' therefore nothing being substituted in those slots.

C: On the other hand when you change the subroutine(); to &subroutine; it printed:

"In the beginning there was nothing, in the end there will be nothing. "

The reason this occurred is because when calling a subroutine
with the '&' the sub automagically "sees" the global scalar
array named '_'.

I admit, lexical scope vs dynamic scope is still confusing to me and
arrays with scope are questionable by me too. I'd be
interested to know how close I am to being correct.


Comment on Re: NEWBIE Brain Teaser #2, by nysus
Select or Download Code

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://72765]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others chanting in the Monastery: (9)
As of 2015-07-05 20:53 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (68 votes), past polls