Thanks for Shawn.The main script can see the global var $q coming from module,since the main script import this symbol via 'use My::HTML qw($q)'.But the modules have no any importing behavior,why they can see the global var $q coming from main script?I'm really confused for that.
-----Original Message----- >From: Shawn Corey <[EMAIL PROTECTED]> >Sent: Jan 15, 2006 10:58 PM >To: beginners@perl.org >Subject: Re: about the var's scope > >Jeff Pang wrote: >> Hello,lists, >> >> Seeing these code below please.I can't know why the var defined in the main >> script can been accessed in the modules that used by the main script?thanks. > > From `perldoc vars`: > >While the vars pragma cannot duplicate the effect of package lexicals >(total transparency outside of the package), it can act as an acceptable >substitute by pre-declaring global symbols, ensuring their availability >to the later-loaded routines. > >This means any variable declared by vars can be accessed outside of the >file it is declared in. > >The second part of the understanding comes from Exporter. When it >exports a thingy, it uses a typeglob to make the thingy in the package >the same as in the 'use'ing module. In other words, for your My::HTML >module, it does this: > > $main::q = \*My::HTML::q; > > >For more details, see: > > perldoc vars > perldoc -f our > perldoc perlfunc (and search for 'our') > > perldoc Exporter > perldoc perlop (and search for 'typeglob') > perldoc perlsub (and search for 'typeglob') > > >-- > >Just my 0.00000002 million dollars worth, > --- Shawn > >"Probability is now one. Any problems that are left are your own." > SS Heart of Gold, _The Hitchhiker's Guide to the Galaxy_ > >* Perl tutorials at http://perlmonks.org/?node=Tutorials >* A searchable perldoc is available at http://perldoc.perl.org/ > >-- >To unsubscribe, e-mail: [EMAIL PROTECTED] >For additional commands, e-mail: [EMAIL PROTECTED] ><http://learn.perl.org/> <http://learn.perl.org/first-response> > > -- http://home.earthlink.net/~pangj/ -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] <http://learn.perl.org/> <http://learn.perl.org/first-response>