in reply to Re: corelist shows a non existent module Pod::Functions::Functions
in thread corelist shows a non existent module Pod::Functions::Functions

I couldn't sleep and was desperate enough to hack a test script checking my Strawberry portable for missing core modules and missing documentation...

I'm stunned!

(Edit: Not sure if it's a Strawberry issue, I mean there is not very often need for Amiga stuff on Win...)

Update

Oops, I should check if core list says if they're still installed...

Update

Fixed code by providing the current Version of Perl $]

There are still modules missing but much less than before

update
This should be run on a linux system again.

use v5.12; use warnings; use Data::Dump qw/pp dd/; use Module::CoreList; my $verbose = 0; my $limit = -20; $|=1; sub out { say @_ if $verbose >0; } my @missing; my @no_doc; my @list = Module::CoreList->find_modules( qr/./, $] ); my $pod_path; for my $module (@list) { out "--- checking $module"; $pod_path = qx/perldoc -l $module 2>&1/; if ($pod_path =~ /no documentation found/i) { chomp $pod_path; out " $pod_path"; unless (find_module($module)){ # explicit require to be sure it's not a filesystem issue my $require_module = qx/perl -m$module -e0 2>&1/; if ( $require_module =~ /can't locate/i ) { out " Couldn't require $module:"; push @missing, $module; } } else { push @no_doc, $module; } } last if $limit-- == 0; # short test } warn pp '\@missing: ', \@missing; warn pp '\@no_doc: ', \@no_doc; sub find_module { my ( $filename ) = @_ ; # --- snippet from perldoc -f require $filename =~ s~::~/~g; $filename .= ".pm"; for my $prefix (@INC) { my $realfilename = "$prefix/$filename"; next if ! -e $realfilename || -d _ || -b _; return 1; } out " Couldn't locate $filename in \@INC ..."; return; }

Cheers Rolf
(addicted to the Perl Programming Language :)
Wikisyntax for the Monastery