in reply to Re^2: Using constants...
in thread Using constants...
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?
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^4: Using use itself -- file scope !?
by ikegami (Patriarch) on Oct 29, 2009 at 20:26 UTC | |
by jakobi (Pilgrim) on Oct 29, 2009 at 21:09 UTC | |
by ikegami (Patriarch) on Oct 29, 2009 at 21:23 UTC |