You can't hide a use like that.
if (0) { print "This block is happening!\n"; use Win32; } print "$_\n" for keys %INC; __DATA__ Exporter.pm Carp.pm strict.pm vars.pm Config.pm warnings/register.pm warnings.pm DynaLoader.pm AutoLoader.pm Win32.pm <------- Perl sees all uses (almost)
And on a system where the module is not available......
[root@devel3 root]# cat test.pl #!/usr/bin/perl -wT BEGIN{print "We are on $^O\n"} if ($^O eq 'MSWin32') { use Win32::TieRegistry( Delimiter=>"/", ArrayValues=>0 ); # load $config from registry } else { # else load $config from flat files } [root@devel3 root]# ./test.pl We are on linux Can't locate Win32/TieRegistry.pm in @INC (@INC contains: /usr/local/l +ib/perl5/5.6.2/i686-linux /usr/local/lib/perl5/5.6.2 /usr/local/lib/p +erl5/site_perl/5.6.2/i686-linux /usr/local/lib/perl5/site_perl/5.6.2 +/usr/local/lib/perl5/site_perl) at ./test.pl line 4. BEGIN failed--compilation aborted at ./test.pl line 4. [root@devel3 root]#
cheers
tachyon
In reply to Re^3: use and require inside subs
by tachyon
in thread use and require inside subs
by Anonymous Monk
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |