in reply to Re: showPerlDirConfig
in thread showPerlDirConfig
Actually it could easily do without the greps - or I could use perl for the same task.
Also note that on no system is $PATH searched recursively. Your code does, so may find the wrong binary.
It still seems excessively convoluted. How about so?
#!/usr/bin/perl -w use strict; use Config; use File::Spec::Functions qw(catfile file_name_is_absolute); my ($binary) = file_name_is_absolute($^X) ? $^X : ( grep -x, map catfile($_,$^X), split /\Q$Config::Config{path_sep}/, $ENV{PATH} ); my %interesting = map +( $_ => do { (my $rwa = $_) =~ s/^install|exp$//; $rwa . (/^install/ ? 3 : /^exp$/ ? 2 : 1); } ), grep { /^(?!installusr|ta|mv|mu|d_)\w* (?:bin(?!compat)|arch(?!name|obj)|priv| (?:vendor|site)(?!lib_|prefix)) [a-z]* /x } keys %Config::Config; print( "Binary is at: $binary\n\n", map { my $lf = /^install/ ? "\n" : ''; sprintf("%-20s %s\n", $_, $Config::Config{$_}) . $lf; } sort { $interesting{$a} cmp $interesting{$b} } keys %interesting );
Makeshifts last the longest.
|
---|
Replies are listed 'Best First'. | |
---|---|
Re^3: showPerlDirConfig
by Intrepid (Curate) on Aug 07, 2003 at 15:37 UTC | |
by Aristotle (Chancellor) on Aug 07, 2003 at 15:47 UTC | |
by Intrepid (Curate) on Aug 07, 2003 at 17:40 UTC | |
by Aristotle (Chancellor) on Aug 07, 2003 at 17:45 UTC |