の出力からファイル名を取得したいのですが、ファイル名ls -lrt
が見つかりません。以下のコマンドを使用しましたが、機能しません。
$cmd=' -rw-r--r-- 1 admin u19530 3506 Aug 7 03:34 sla.20120807033424.log';
my $result=`cut -d, -f9 $cmd`;
print "The file name is $result\n";
結果は空白です。ファイル名が必要ですsla.20120807033424.log
これまでのところ、以下のコードを試してみましたが、ファイル名に対して機能します。
コード
#!/usr/bin/perl
my $dir = <dir path>;
opendir (my $DH, $dir) or die "Error opening $dir: $!";
my %files = map { $_ => (stat("$dir/$_"))[9] } grep(! /^\.\.?$/, readdir($DH));
closedir($DH);
my @sorted_files = sort { $files{$b} <=> $files{$a} } (keys %files);
print "the file is $sorted_files[0] \n";