definedで調べなくてもmy $fhでOK
スポンサードリンク
Cross the Sea: Three Tips About Perl I Have Known in Recent Days [cross-the-sea.blogspot.com]
if ( $error_contents ){
unless ( defined $fh ){
open ($fh, ">$dir_store/report.txt");
}
print $fh "$error_contents\n";
}
んーこれはかなり旧式な書き方。
これだと、$fhがスコープの外に漏れるし、元もとなんかの用途で使った$fhを再利用したいって言う意味ですよね。そんなどこの馬の骨ともわからん変数を再利用するんだったら、ローカル変数として$fhを使った方がいいので、
if ( $error_contents ) { open my $fh, '>', "$dir_store/report.txt" or die $!; print $fh "$error_contents\n"; close $fh; }
こんな感じに書く方が一般的だと、CPAN Authorなのに社内で全然頼りにされていない人がいってた。ていうかPerlベストプラクティスあたりにぐっつら書いてる。
あと、openは3項でやった方がいいです。ファイル名に変な文字が入っているとヤバいからです。
参考:
- ファイルオープンの2種類の記述方法 - Perl入門~サンプルコードによるPerl入門~ [d.hatena.ne.jp]
- 404 Blog Not Found:perl - 勝手に添削 - Perl入門#1@ITPro [blog.livedoor.jp]
- Perl 2008年のファイルオープン - てっく煮ブログ [d.hatena.ne.jp]
(2009-3-25 14.38修正)
個人的には
open ( my $fh, '>', "$dir_store/report.txt" ) or die $!;
の書き方が好きなので最初そうしていましたが一般的とか言う意味ではどうかなーて思ったので、
open my $fh, '>', "$dir_store/report.txt" or die $!;
に直しました。
スポンサードリンク
トラックバック(0)
トラックバックURL: http://blog.dtpwiki.jp/MTOS/mt-tb.cgi/2797
コメントする