That's a great idea. I started to play with something similar and got the following for the anon function on the @INC array.
BEGIN {
use 5.8.0;
use vars qw(@missing);
push @INC, sub {
my ($coderef, $filename) = @_;
# Ignore non-modules.
return undef unless ($filename =~ s/.pm$//);
# Remember the module.
$filename =~ s/\//::/g;
push @missing, $filename;
# Return a dummy file handle.
open my $FH, '<', \'1;';
$FH;
};
}
The INIT block is a great idea.
INIT {
# Check and clean up.
die "Missing modules.\n\tcpan -i ", join(' ',' @missing), "\n\
+n" if (@missing);
pop @INC;
}
The
open my $FH, '<', \'1;'; is available in perl 5.8.8.
Is there a better way to deduce the module name than removing the .pm extension and replacing /s with ::? Will it work on non-UNIX platforms?
Popping the function off again seems like a good idea.
Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
Read Where should I post X? if you're not absolutely sure you're posting in the right place.
Please read these before you post! —
Posts may use any of the Perl Monks Approved HTML tags:
- a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
| |
For: |
|
Use: |
| & | | & |
| < | | < |
| > | | > |
| [ | | [ |
| ] | | ] |
Link using PerlMonks shortcuts! What shortcuts can I use for linking?
See Writeup Formatting Tips and other pages linked from there for more info.