Beefy Boxes and Bandwidth Generously Provided by pair Networks
We don't bite newbies here... much
 
PerlMonks  

Re: Re: Re: Re: NEWBIE Brain Teaser

by hiroki (Novice)
on Apr 16, 2001 at 19:29 UTC ( #72839=note: print w/ replies, xml ) Need Help??


in reply to Re: Re: Re: NEWBIE Brain Teaser
in thread NEWBIE Brain Teaser

i am not a "more monkish Monk", but i did get curious about this behavior of foreach. This is an alias (example modified from _Advanced Perl Programming_ (O'rielly) by Sriram Srinivasan):

$a = 10; # saclar a @a = (1, 2, 3); # array a *b = *a; # aliases b to a $a++; # increments $a :) $b++; # same as saying $a++ print "$b, $a"; # prints: 12 12 @b[0] = 4; # same as saying $a[0] = 4
as you can see, the aliasing on line 3 makes any manipulation of $b, @b or %b manipulate $a, @a, %a respectively. hope this helps and is not too confusing. if i'm wrong, tell me :)


Comment on Re: Re: Re: Re: NEWBIE Brain Teaser
Download Code
Replies are listed 'Best First'.
Re (tilly) 5: NEWBIE Brain Teaser
by tilly (Archbishop) on Apr 16, 2001 at 19:53 UTC
    That aliasing command relies on typeglobs to work.

    Therefore it will only work with global variables. (ie you must localize with local, not my.) I stay away from that except when it really doesn't make sense not to. :-)

    The mostly widely used form of that kind of aliasing in modern Perl is for exporting symbols using Exporter.

    FWIW one goal for Perl 6 is to kill typeglobs entirely. The functionality should be available, but by a different mechanism...

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others having an uproarious good time at the Monastery: (15)
As of 2015-07-29 16:54 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 (265 votes), past polls