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

Re: Config::Config{osname} and Config{osname}

by Anonymous Monk
on Dec 07, 2011 at 09:09 UTC ( #942184=note: print w/ replies, xml ) Need Help??


in reply to Config::Config{osname} and Config{osname}

%Config::Config like @Config::ISA lives in package Config; while %Config lives in package main;

When you use Config; it exports %Config into your current package (main). If you use package Huang; use Config; it exports (creates) %Config in package Huang; The fully qualified name of this exported (created) %Config is %Huang::Config;

It is a global variable.

This "exporting" is a copy. Copies take memory. So if you use Config(); or require Config; no copy gets made in your current namespace, but you can still access the original by its full name %Config::Config;

Read Tutorials: Variable Scoping in Perl: the basics, Coping with Scoping


Comment on Re: Config::Config{osname} and Config{osname}
Select or Download Code
Re^2: Config::Config{osname} and Config{osname}
by Anonymous Monk on Dec 07, 2011 at 09:14 UTC

    This "exporting" is a copy. Copies take memory.

    Actually, it only copies a reference, not a lot of memory

    perl -MConfig -le " print \%Config::Config; print \%Config; " HASH(0x99abe4) HASH(0x99abe4)
Re^2: Config::Config{osname} and Config{osname}
by PhillipHuang (Sexton) on Dec 07, 2011 at 09:43 UTC
    I see. When 'use Config' first, and then in 'package Huang', it must be identified with original path as "$Config::Config". If use '$Config{osname}', it will warn 'Global symbol "%Config" requires explicit package'.

      Yup, it all depends what package you're in

      $ perl -l use strict; use warnings; use Config; # main package Huang; use Config; package Batman; use Config; package main; print \%Config; print \%Huang::Config; print \%Batman::Config; print \%main::Config; print \%Config::Config; __END__ HASH(0x99abcc) HASH(0x99abcc) HASH(0x99abcc) HASH(0x99abcc) HASH(0x99abcc)

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others perusing the Monastery: (6)
As of 2015-07-03 20:27 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 (56 votes), past polls