App-eachperl
view release on metacpan or search on metacpan
lib/App/eachperl.pm view on Meta::CPAN
my $RESET = "\e[m";
my $BOLD = "\e[1m";
my %COL = (
( map { $_ => Convert::Color->new( "vga:$_" ) } qw( red blue green ) ),
grey => Convert::Color->new( "xterm:grey(70%)" ),
);
# Allow conversion of signal numbers into names
use Config;
my @SIGNAMES = split m/\s+/, $Config{sig_name};
=head1 NAME
C<App::eachperl> - a wrapper script for iterating multiple F<perl> binaries
=head1 SYNOPSIS
$ eachperl exec -E 'say "Hello"'
--- perl5.30.0 ---
lib/App/eachperl.pm view on Meta::CPAN
{
foreach ( $_since_version, $_until_version ) {
defined $_ or next;
m/^v/ or $_ = "v$_";
# E.g. --until 5.14 means until the /end/ of the 5.14 series; so 5.14.999
$_ .= ".999" if \$_ == \$_until_version and $_ !~ m/\.\d+\./;
$_ = version->parse( $_ )->stringify;
}
if( my $perlnames = $_perls ) {
foreach my $perl ( split m/\s+/, $perlnames ) {
chomp( my $fullpath = `which $perl` );
$? and warn( "Can't find perl at $perl" ), next;
my ( $ver, $usethreads, $ccflags ) = split m/\n/,
scalar `$fullpath -MConfig -e 'print "\$]\\n\$Config{usethreads}\\n\$Config{ccflags}\\n"'`;
$ver = version->parse( $ver )->normal;
my $threads = ( $usethreads eq "define" );
my $debug = $ccflags =~ m/-DDEBUGGING\b/;
my $devel = ( $ver =~ m/^v\d+\.(\d+)/ )[0] % 2;
push @_perlobjs, App::eachperl::_Perl->new(
name => $perl,
fullpath => $fullpath,
lib/App/eachperl.pm view on Meta::CPAN
String::Tagged->join( " | ", @status )
->apply_tag( 0, -1, bg => Convert::Color->new( "vga:blue" ) )
);
$opts{oneline}
? $_io_term->more_partial( "$BOLD$perl:$RESET " )
: $_io_term->print_line( "\n$BOLD --- $perl --- $RESET" );
my $has_partial = $opts{oneline};
IPC::Run::run [ $path, @argv ], ">pty>", sub {
my @lines = split m/\r?\n/, $_[0], -1;
if( $has_partial ) {
my $line = shift @lines;
if( $line =~ s/^\r// ) {
$_io_term->replace_partial( $line );
}
else {
$_io_term->more_partial( $line );
}
( run in 1.038 second using v1.01-cache-2.11-cpan-2ed5026b665 )