Beefy Boxes and Bandwidth Generously Provided by pair Networks
Keep It Simple, Stupid
 
PerlMonks  

Re: List EXE_FILES installed by CPAN

by choroba (Cardinal)
on Jun 24, 2018 at 20:11 UTC ( [id://1217331]=note: print w/replies, xml ) Need Help??


in reply to List EXE_FILES installed by CPAN

Interestingly, the output on my machine is different to ls ~/perl5/bin which would be the way how I would proceed. It show several more executables.

($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,

Replies are listed 'Best First'.
Re^2: List EXE_FILES installed by CPAN (FIXED!)
by usemodperl (Beadle) on Jun 25, 2018 at 00:23 UTC
    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 🐪
      > 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://1217331]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others making s'mores by the fire in the courtyard of the Monastery: (1)
As of 2024-04-25 04:17 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found