なんかエラーで止まっちゃうときに、どこで止まったかを知るには、use diagnostics; をつかう。
1: #!/usr/bin/perl 2: 3: use strict; use warnings; 4: use diagnostics; 5: 6: use Time::Piece; 7: use Time::Seconds; 8: 9: sub henkan{ 10: my $timestamp = $_[0]; 11: my $tp = Time::Piece->strptime( $timestamp, "%b %d %T" ); # ★ここでエラー 12: $tp += ONE_YEAR*(localtime->year-1970); 13: return $tp->strftime("%F %T"); 14: } 15: 16: print henkan('RR Aug 2 17:34:10'); 17: # ↑ごみを入れた
use diagnostics 未使用時
$ ./hoge68.pl Error parsing time at /usr/lib/perl/5.10/Time/Piece.pm line 470.
なんにもわからない
use diagnostics 使用時
$ ./hoge68.pl >/dev/null Uncaught exception from user code: Error parsing time at /usr/lib/perl/5.10/Time/Piece.pm line 470. at /usr/lib/perl/5.10/Time/Piece.pm line 470 Time::Piece::strptime('Time::Piece', 'Aug 2 17:34:10', '%Y %b %d %T') called at ./hoge68.pl line 11 main::henkan('Aug 2 17:34:10') called at ./hoge68.pl line 16
すごいよくわかる
実行時にためしに追加したいときは、コマンドラインオプションで -Mdiagnostics を指定するといける