Beefy Boxes and Bandwidth Generously Provided by pair Networks
"be consistent"
 
PerlMonks  

Re: Globs and globals

by BrentDax (Hermit)
on Jan 25, 2005 at 07:58 UTC ( #424800=note: print w/replies, xml ) Need Help??


in reply to Globs and globals

The easiest way might be to just localize S1 and S2 first:

local(*S1, *S2); ...as in your first example...

OTOH, I don't think my $socket \*S1 is valid Perl--maybe there's an equal sign missing between $socket and \*S1?

=cut
--Brent Dax
There is no sig.

Replies are listed 'Best First'.
Re^2: Globs and globals
by Eyck (Priest) on Jan 25, 2005 at 13:48 UTC

    This advice is factually incorrect.

    GLOB is a glob, and local doesen't help here ( besides providing false sense of security )

    my $socket=\*S1; print "Orig:",$socket,"\n"; { local(*S1, *S2); my $s=\*S1; print "Local: ",$s,"\n"; }
    Orig:GLOB(0x8160be4)
    Local: GLOB(0x8160be4)
    

      Odd--you're right, though I can't figure out why. The docs seem to say that you get a new glob when you localize:

      The construct local *name; creates a whole new symbol table entry for the glob "name" in the current package. That means that all variables in its glob slot ($name, @name, %name, &name, and the "name" filehandle) are dynamically reset.

      In any case, the following does work correctly:

      open(S1, "/dev/null"); $a=*S1{IO}; { local(*S1); open(S1, "/dev/null"); $b=*S1{IO}; } print "$a $b\n";
      IO::Handle=IO(0x101536f8) IO::Handle=IO(0x1013cdec)

      =cut
      --Brent Dax
      There is no sig.

        Interesting, your code works, although I would expect it not to. I haven't seen this excerpt in documentation about local and globs so it's a bit of surprise for me, thanks.

        There must be something about dual nature of globs - whatever experiment you devise it proves your theory, even if it contradicts other experiments.

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others making s'mores by the fire in the courtyard of the Monastery: (6)
As of 2022-01-22 18:00 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    In 2022, my preferred method to securely store passwords is:












    Results (63 votes). Check out past polls.

    Notices?