Beefy Boxes and Bandwidth Generously Provided by pair Networks
P is for Practical
 
PerlMonks  

Re^2: List EXE_FILES installed by CPAN (FIXED!)

by usemodperl (Beadle)
on Jun 25, 2018 at 00:23 UTC ( [id://1217338]=note: print w/replies, xml ) Need Help??


in reply to Re: List EXE_FILES installed by CPAN
in thread List EXE_FILES installed by CPAN

Well /bin shows everything but this is just for CPAN executables. Anyway my original post was broken and was hiding about 60 programs from me! I also learned that unformatted code is very unpopular around here (outside obfu :-). This seems to work locally, let me know if you have any problems, or make improvements:

List EXE_FILES installed by CPAN:
#!/usr/bin/perl -l use strict; use warnings; # List EXE_FILES installed by CPAN $_ = join '', `perldoc -uT perllocal`; @_ = (/EXE_FILES:\s([^>]+)/sg); my @z = (); for (@_) { my @x = split /\s+/; s/^\S+\/// for @x; push @z, @x; } %_ = map { $_ => 1 } @z; print $_ for sort keys %_; #print scalar keys %_;
List EXE_FILES installed by CPAN, by module:
#!/usr/bin/perl -l use strict; use warnings; # List EXE_FILES installed by CPAN, by module $_ = join '', `perldoc -uT perllocal`; my @m = (/=head2.*?\|([^>]+)/g); my @e = (/EXE_FILES:\s([^>]*)/sg); for (my $c = 0; $c < scalar @m; $c++) { $_{$m[$c]} = $e[$c] } my @z = (); my $n = 0; for (sort { lc($a) cmp lc($b) } keys %_) { if (my @x = split /\s+/, $_{$_}) { print; $n += scalar @x; s/^\S+\/// for @x; print " $_" for @x; print ""; } } #print $n;
STOP REINVENTING WHEELS, START BUILDING SPACE ROCKETS!CPAN 🐪

Replies are listed 'Best First'.
Re^3: List EXE_FILES installed by CPAN (FIXED!)
by choroba (Cardinal) on Jun 25, 2018 at 00:29 UTC
    > Well /bin shows everything

    Well yes, but

    '~/perl5/bin' ne '/bin'

    In fact,

    $ echo $PERL_LOCAL_LIB_ROOT /home/choroba/perl5

    ($q=q:Sq=~/;[c](.)(.)/;chr(-||-|5+lengthSq)`"S|oS2"`map{chr |+ord }map{substrSq`S_+|`|}3E|-|`7**2-3:)=~y+S|`+$1,++print+eval$q,q,a,
      Well yes, but
      
      '~/perl5/bin' ne '/bin'
      
      What does that mean?
      In fact,
      
      $ echo $PERL_LOCAL_LIB_ROOT 
      /home/choroba/perl5
      
      My environment doesn't have that variable. How does it help isolate executables from CPAN? I guess it does help isolate core perl programs, like this:
      #!/usr/bin/perl -l use strict; use warnings; # List executables installed by Perl core # List CPAN: https://perlmonks.org/?node_id=1217338 (my $bin = $^X) =~ s/.perl$//; chomp(my @perl = `ls -l $bin`); s/.*\s(\S+)$/$1/ for @perl; # filename shift @perl; chomp($_ = join "", `perldoc -uT perllocal`); my @temp = (/EXE_FILES:\s([^>]+)/sg); my @cpan = (); for (@temp) { my @x = split /\s+/; # filename(s) s/^\S+\/// for @x; # remove path push @cpan, @x; } my $perl = { map {$_=>1} @perl }; my $cpan = { map {$_=>1} @cpan }; my $core = {}; for (keys %$perl) { $core->{$_}++ unless $cpan->{$_} } print $_ for sort keys %$core;
      STOP REINVENTING WHEELS, START BUILDING SPACE ROCKETS!CPAN 🐪

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://1217338]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others scrutinizing the Monastery: (2)
As of 2024-04-20 05:31 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found