mirror of
https://github.com/perlbot/perlbuut
synced 2025-06-07 17:35:40 -04:00
60 lines
2.2 KiB
Perl
60 lines
2.2 KiB
Perl
BEGIN {do Module::CoreList};
|
|
|
|
sub require {
|
|
my ($filename) = @_;
|
|
if (exists $INC{$filename}) {
|
|
return 1 if $INC{$filename};
|
|
die "Compilation failed in require";
|
|
}
|
|
my ($realfilename,$result);
|
|
ITER: {
|
|
foreach $prefix (@INC) {
|
|
$realfilename = "$prefix/$filename";
|
|
if (-f $realfilename) {
|
|
$INC{$filename} = $realfilename;
|
|
$result = do $realfilename;
|
|
last ITER;
|
|
}
|
|
}
|
|
die "Can't find $filename in \@INC";
|
|
}
|
|
if ($@) {
|
|
$INC{$filename} = undef;
|
|
die $@;
|
|
} elsif (!$result) {
|
|
delete $INC{$filename};
|
|
die "$filename did not return true value";
|
|
} else {
|
|
return $result;
|
|
}
|
|
}
|
|
|
|
sub {
|
|
my ( $said, $pm ) = @_;
|
|
my $module = $said->{recommended_args}->[0];
|
|
|
|
my $rev = Module::CoreList->first_release($module);
|
|
if ($rev) {
|
|
print "Added to perl core as of $rev";
|
|
if ( Module::CoreList->can('removed_from') ) {
|
|
my $rem = Module::CoreList->removed_from($module);
|
|
print " and removed from $rem" if $rem;
|
|
}
|
|
}
|
|
else {
|
|
my @modules = Module::CoreList->find_modules(qr/$module/);
|
|
|
|
if (@modules) {
|
|
print 'Found', scalar @modules, ':', join ',',
|
|
map { $_ . ' in ' . Module::CoreList->first_release($_) }
|
|
@modules;
|
|
|
|
}
|
|
else {
|
|
print "Module $module does not appear to be in core. Perhaps capitalization matters or try using the 'cpan' command to search for it.";
|
|
}
|
|
}
|
|
}
|
|
|
|
__DATA__
|
|
Tells you when the module you searched for was added to the Perl Core, if it was.
|