2020年5月26日火曜日

開発環境

初めてのPerl 第7版 (Randal L. Schwartz(著)brian d foy(著)Tom Phoenix(著)近藤 嘉雪(翻訳)嶋田 健志(翻訳)、オライリージャパン)の12章(ファイルテスト)、12.5(練習問題)2の解答を求めてみる。

コード

#!/usr/bin/env perl
use strict;
use warnings;
use v5.28;

die "usage: <filename> [filename...]" unless @ARGV;

my $days = -1;
my $filename;
foreach (@ARGV) {
    next unless -e;
    my $t = -M _;
    if ($t > $days) {
        $days = $t;
        $filename = $_;
    }
}
die "存在するファイル名が与えられていない" unless $filename;
say "最も古いファイル $filename 変更されてからの日数: ${days}日";

入出力結果(Zsh、PowerShell、Terminal)

% ./sample2.pl 
usage: <filename> [filename...] at ./sample2.pl line 6.
% ./sample2.pl aaaaa
存在するファイル名が与えられていない at ./sample2.pl line 18.
% ./sample2.pl temp/*
最も古いファイル temp/temp1.txt 変更されてからの日数: 0.918449074074074日
% ./sample2.pl temp
最も古いファイル temp 変更されてからの日数: 0.918530092592593日
% ./sample2.pl temp/* aaaaa  
最も古いファイル temp/temp1.txt 変更されてからの日数: 0.918668981481481日
% ./sample2.pl sample2.pl temp/* abcde temp
最も古いファイル temp/temp1.txt 変更されてからの日数: 0.91880787037037日
% ./sample2.pl sample2.pl                  
最も古いファイル sample2.pl 変更されてからの日数: 0.000717592592592593日
% 

0 コメント:

コメントを投稿