good chemistry is complicated, and a little bit messy -LW |
|
PerlMonks |
Re^3: Using use itself -- file scope !?by jakobi (Pilgrim) |
on Oct 29, 2009 at 19:39 UTC ( [id://804035]=note: print w/replies, xml ) | Need Help?? |
ikegami's right as a BEGIN{require 'constants.pl'} (thanx!) or even a simple peek at %main:: does show. But I'm still wondering about this section in perldoc -f use: Because this is a wide-open interface, pragmas (compiler directives) are also implemented this way. Currently implemented pragmas are:use constant; use diagnostics; use integer; use sigtrap qw(SEGV BUS); use strict qw(subs vars refs); use subs qw(afunc blurfl); use warnings qw(all); use sort qw(stable _quicksort _mergesort);Some of these pseudo-modules import semantics into the current block scope (like "strict" or "integer", unlike ordinary modules, which import symbols into the current package (which are effective through the end of the file). Let me attempt to make sense of it: Now a BEGIN{require "constants.pl"} basically turns contents.pl into a module. Add a do "y" somewhere near the end in main.pl. Create this file y and have it just print STDERR keys %main::. Copy it to a file z and prepend BEGIN{do "main.pl"}. Run perl -e ./z. Wonder. Check Exporter documentation and do a similar little test with imported symbols. And start WONDERING.
I'm now fully confused, and it's not the missing parens in the quoted section above:
Any ideas on what is actually meant?
cu & thanx, Peter -- --INT due to confusion spell.
In Section
Seekers of Perl Wisdom
|
|