Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl-Sensitive Sunglasses
 
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 having an uproarious good time at the Monastery: (12)
As of 2014-10-20 11:01 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    For retirement, I am banking on:










    Results (75 votes), past polls