$ perl -E 'my $var = "123\n"; say $var;'
123
$ perl -E 'my $var = "123\n"; say "|$var|";'
|123
|
####
#!/usr/bin/env perl
use strict;
use warnings;
use constant {
INODE => 1,
FSIZE => 7,
MTIME => 9,
};
use Cwd 'cwd';
use File::Find;
use Time::Piece;
my $wDirectory = cwd();
find(\&wanted, $wDirectory);
transform($wDirectory);
display();
{
my ($data_for, $ignore_re, $display_fmt);
BEGIN {
$ignore_re = qr{(?mx: \. (?: pl | swp \z ) )};
$display_fmt = "%-6s %3d %6d %-10s %17d [%d]\n";
}
sub wanted {
return unless -f $File::Find::name;
return if $_ =~ $ignore_re;
$data_for->{$File::Find::name} = {
dir => $File::Find::dir,
file => $_,
stat => [ stat _ ],
};
return;
}
sub transform {
my ($cwd) = @_;
for my $path (keys %$data_for) {
my $data = $data_for->{$path};
my $t = localtime($data->{stat}[MTIME]);
my $date = $t->ymd();
$date =~ y/-//d;
my $rel_dir = join substr($data->{dir}, length $cwd), qw{. /};
@$data{qw{date rel_dir inode size mtime}}
= ($date, $rel_dir, @{$data->{stat}}[INODE, FSIZE, MTIME]);
}
return;
}
sub display {
my @display_fields = qw{file size date rel_dir inode mtime};
printf $display_fmt, @{$data_for->{$_}}{@display_fields}
for sort {
$data_for->{$a}{mtime} <=> $data_for->{$b}{mtime}
} keys %$data_for;
return;
}
}
####
f1 0 20221013 ./d1/d3_3/ 10977524094816598 [1665639046]
f1 0 20221013 ./d1/d1_1/ 10133099164684663 [1665639074]
f2 0 20221013 ./d1/d1_1/ 9570149211263361 [1665639080]
f3 0 20221013 ./d1/d1_1/ 9851624187974024 [1665639088]
f1 0 20221013 ./d1/d1_2/ 9007199257842058 [1665639107]
f2 0 20221013 ./d1/d1_2/ 9851624187974028 [1665639115]
f3 0 20221013 ./d1/d1_2/ 10696049118105998 [1665639120]
f2_2 0 20221013 ./d2/ 10414574141395314 [1665639154]
f2_3_1 0 20221013 ./d2/d2_3/ 10414574141424462 [1665639207]
f2_2_2 0 20221013 ./d2/d2_2/ 9851624187973976 [1665639223]
f2_2_1 0 20221013 ./d2/d2_2/ 8725724281131669 [1665639238]
####
use autodie;
...
open my $pipe, '-|', $command;
while (<$pipe>) {
...
}