2013年8月10日土曜日

開発環境

『初めてのPerl 第6版』(Randal L. Schwartz, Tom Phoenix, brian d foy 共著、近藤 嘉雪 訳、オライリー・ジャパン、2012年、ISBN978-4-87311-567-2)の12章(ファイルテスト)の12.5(練習問題)2を解いてみる。

その他参考書籍

2.

コード(BBEdit)

sample.pl

#!/usr/bin/env perl
use strict;
use warnings;
use 5.016;
use utf8;
binmode STDOUT, ':utf8';
binmode STDIN, ':utf8';

die unless @ARGV;
my $days = 0;
my $name = shift @ARGV;

for  (@ARGV) {
    next unless -e $_;
    my $tmp = -M $_;
    ($days, $name) = ($tmp, $_) if $tmp > $days;
}
print "$name: ${days}日\n" if $name;

入出力結果(Terminal)

$ ./sample.pl *
barney: 4444.32961805556日
$ ./sample.pl
Died at ./sample.pl line 10.
$

ちなみにpython3.3の場合。

コード(BBEdit)

sample.py

#!/usr/bin/env python3.3
## Copyright (C) 2013 by kamimura
#-*- coding: utf-8 -*-

import os, sys, glob, time


files = []
if sys.argv[1] == "*":
    files = glob.glob("*")
else:
    files = sys.argv[1:]

name = files[0]
t = os.path.getmtime(files[0])

for f in files[1:]:
    if not os.access(f, os.F_OK):
        continue
    else:
        tmp = os.path.getmtime(f)
        if tmp < t:
            t = tmp
            name = f

print("{0}: {1}日".format(name, (time.time() - t) / (24 * 60 * 60)))

入出力結果(Terminal)

$ ./sample.py *
barney: 4444.349907166495日
$

0 コメント:

コメントを投稿