Beefy Boxes and Bandwidth Generously Provided by pair Networks
Do you know where your variables are?

Re: Unusual variable declaration

by choroba (Archbishop)
on Nov 02, 2019 at 21:46 UTC ( #11108263=note: print w/replies, xml ) Need Help??

in reply to Unusual variable declaration

The first line declares an alias $var for the global variable $var in the current package. The second line makes it an alias of the $var variable in the main package.

Therefore, it only makes sense to use this in a package different to main. For example:

#!/usr/bin/perl use warnings; use strict; our $var; $var = 42; { package My; our $var; *var = \$main::var; print $var, "\n"; $var = 84; } print $var, "\n";

map{substr$_->[0],$_->[1]||0,1}[\*||{},3],[[]],[ref qr-1,-,-1],[{}],[sub{}^*ARGV,3]

Replies are listed 'Best First'.
Re^2: Unusual variable declaration
by LanX (Cardinal) on Nov 03, 2019 at 12:12 UTC

    • local

    I almost always use this construct with local except if I want to alias globally.

     local *var = \$main::var;

    Otherwise any later use of $My::var in another scope will also be aliased.

    • importing

    Should also be mentioned that typeglob aliasing is the essential underlying mechanism Exporter is using.

    Though mostly for subs not vars and always globally.

    Cheers Rolf
    (addicted to the Perl Programming Language :)
    Wikisyntax for the Monastery FootballPerl is like chess, only without the dice

Re^2: Unusual variable declaration
by haukex (Bishop) on Nov 02, 2019 at 21:49 UTC

    Exactly what I was going to say :-) The most relevant docs are probably perlmod.

Log In?

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

How do I use this? | Other CB clients
Other Users?
Others rifling through the Monastery: (7)
As of 2020-11-24 21:54 GMT
Find Nodes?
    Voting Booth?

    No recent polls found