http://www.perlmonks.org?node_id=1031764


in reply to Re: ActivePerl Default Installed Packages (perltoc)
in thread ActivePerl Default Installed Packages

Definitely not a package list, or a modlist, but a module doc list :) close enough :) activestate-corelist-perltoc.pl

#!/usr/bin/perl -- ## activestate-corelist-perltoc.pl use Path::Class; use constant THISFILE => file( __FILE__ )->absolute->stringify; use constant THISDIR => file( THISFILE )->dir->stringify; use strict; use warnings; use LWP::Simple qw' $ua '; use XML::LibXML; binmode STDOUT; chdir THISDIR or die "$!\n$^E\n "; my( $tocurl ) = @ARGV; my $tocfile = file( THISFILE )->basename ; $tocfile =~ s/(\.[^\.]+)?$/-data\.html/; if( not -e $tocfile or $tocurl ){ $tocurl ||= 'http://docs.activestate.com/activeperl/5.16/perltoc.h +tml'; $ua->show_progress(1); $ua->mirror( $tocurl, $tocfile ); } my $dom = XML::LibXML->new( qw/ recover 2 / )->load_html( location => $tocfile, ); #~ for my $module ( $dom->findnodes(q{//li/a[@class="doc" and starts-w +ith(@href,"lib") ]}) ){ my $seenbin = 0; for my $module ( $dom->findnodes(q{//li/a[@class="doc" ]}) ){ my $href = $module->getAttribute('href'); next if $href =~ m{^lib/pods} ; if( $href =~ m{^bin/} ){ $seenbin++; next; } next if not $seenbin; $href =~ s{^lib/}{}i; $href =~ s{\.html$}{}i; $href =~ s{/}{::}g; print "$href\n"; #~ print $module->nodePath, "\n"; #~ print "$module", "\n"; }