in reply to Re: announce missing modules
in thread announce missing modules
The INIT block is a great idea.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 open my $FH, '<', \'1;'; is available in perl 5.8.8.INIT { # Check and clean up. die "Missing modules.\n\tcpan -i ", join(' ',' @missing), "\n\ +n" if (@missing); pop @INC; }
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.
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^3: announce missing modules
by Arif (Acolyte) on Feb 26, 2008 at 14:44 UTC |