App-Greple-xlate
view release on metacpan or search on metacpan
lib/App/Greple/xlate.pm view on Meta::CPAN
my @m = ($i == 1 ? 'â¶' : 'â') x $i ;
@m[0,-1] = qw(â â) if $i > 1;
s/^/sprintf "%7s ", shift(@m)/mge;
s/(?<!\n)\z/\n/;
s/( +)$/"â£" x length($1)/mge;
print STDERR $_;
}
}
sub cache_update {
binmode STDERR, ':encoding(utf8)';
my @from = @_;
_progress({label => "From"}, @from);
return @from if $dryrun;
$maskobj->mask(@from) if $maskobj;
my @chop = grep { $from[$_] =~ s/(?<!\n)\z/\n/ } keys @from;
my @to = map { s/ +$//mgr } &XLATE(@from);
chop @to[@chop];
$maskobj->unmask(@to)->reset if $maskobj;
t/runner/Runner.pm view on Meta::CPAN
use IO::File;
sub run {
my $obj = shift;
use IO::File;
my $pid = (my $fh = new IO::File)->open('-|') // die "open: $@\n";
if ($pid == 0) {
if (my $stdin = $obj->{STDIN}) {
open STDIN, "<&=", $stdin->fileno or die "open: $!\n";
$stdin->fcntl(F_SETFD, 0) or die "fcntl F_SETFD: $!\n";
binmode STDIN, ':encoding(utf8)';
}
open STDERR, ">&STDOUT";
$obj->execute;
exit 1;
}
$obj->{STDIN} = undef;
binmode $fh, ':encoding(utf8)';
$obj->{stdout} = do { local $/; <$fh> };
my $child = wait;
$child != $pid and die "child = $child, pid = $pid";
$obj->{pid} = $pid;
$obj->{result} = $?;
$obj;
}
sub status {
my $obj = shift;
t/runner/Runner.pm view on Meta::CPAN
}
*result = \&stdout; # for backward compatibility
sub setstdin {
my $obj = shift;
my $data = shift;
my $stdin = $obj->{STDIN} //= do {
my $fh = new_tmpfile IO::File or die "new_tmpfile: $!\n";
$fh->fcntl(F_SETFD, 0) or die "fcntl F_SETFD: $!\n";
binmode $fh, ':encoding(utf8)';
$fh;
};
$stdin->seek(0, 0) or die "seek: $!\n";
$stdin->truncate(0) or die "truncate: $!\n";
$stdin->print($data);
$stdin->seek(0, 0) or die "seek: $!\n";
$obj;
}
##
( run in 0.370 second using v1.01-cache-2.11-cpan-3cd7ad12f66 )