持続時間(hh:mm:ss)を総秒に変換する方法はPerlにありますか?
サンプル:02:50:30出力:10230
答え1
次のプログラムがこれを行う必要があります。
$hhmmss="02:50:30";
@arr=split(':',$hhmmss);
$sec=@arr[2];
$sec+=@arr[1]*60;
$sec+=@arr[0]*3600;
print $sec;
答え2
$ perl -le '$t=shift;
($h,$m,$s) = split /:/, $t;
print $h * 3600 + $m * 60 + $s' 02:50:30
10230
または$ t変数なし:
$ perl -l -e '($h,$m,$s) = split /:/, shift;
print $h * 3600 + $m * 60 + $s' 02:50:30
10230
答え3
正規表現を使用してすべての時間単位を検索し、数学計算を参照します。
perl -e 'print $1*3600 + $2*60 + $3 if $ARGV[0]=~/^(\d{2,}):(\d{2}):(\d{2})$/' "02:50:30"