ファイル名を作る時

Perl から生成するファイル名に日付を使おうかと思って、いくつか試した。

#!/usr/local/bin/perl
use strict;
use warnings;
use feature qw/:5.10/;
use Time::Format;

#一つ目の方法
my @time = (localtime)[0 .. 5];
printf "%d%02d%02d%02d%02d%02d\n", $time[5]+1900, $time[4]+1, $time[3], $time[2], $time[1], $time[0];

#二つ目の方法
say "$time{'yyyymmddhhmmss'}";

#三つ目の方法
say time();

一つ目は書くのに長過ぎて面倒。

二つ目は一つ目と同じような出力でもっと簡単にできなかと思って CPAN 探したら見つかったのでやってみた。スマートと言えばスマートなんだけど、そんなことにモジュールまで使うのは大げさ過ぎかなっと思う。

三つ目は、もう Epoch 時刻でいいんじゃないかと思って、ビルトインの time() 関数。

最悪 File::Temp の tempfile() 関数でもいいかなぁとか思うけど、時間関係ないし、大雑把過ぎなきもする。