2009-01-24から1日間の記事一覧
ファイルをopenするときに関しての話を続けたいと思います。 前回のようなソース pen my $f, '<', 'hoge.txt' or die 'ファイルが開けないっす'; では、 ファイルに権限がなくて open できなくても、 ファイルそのものがなくて open できなかった場合でも、 …
例外処理。 ああ、プログラミングの70%は例外を処理するために書いているのではないか、 そんな気にもなったりするときがあるビンゴ中西です。 例外処理。例外処理とはそもそもなんなんでしょうね〜。 やってますか? 例外処理? 実装してますか? 例外処理…
evalを使えばPerlでも例外処理ができます。 はい 拍手〜〜〜 パチパチパチ ということでevalを使った例外処理の例をみていきましょう。 次のソースをみてみてください。 Perlでは0での割り算はできません。 0で割り算すると、エラーとなりその行以降の処理は…
今回は、 eval というものを説明します。 これのひとつの機能としては、「文字列をPerlの文として評価する」ということがあげられます。次の例をみてほしい。 ソース 単なる文字列を表示 use strict; my $c = q{print 'Hello', "\n";}; print $c, "\n"; 結果…
○ 配列からユニークなものだけ取り出す 配列からユニークなものを取得したいときは、ハッシュを使えばよい。 (いろんなページでソースが載っていますね) ソース1 use strict; use Data::Dumper; my @c = qw(aa bb cc dd aa cc ee ff gg ff); my %d; $d{$_}…
print について 今まで、なにげなしに、printを使ってきたが、 printの挙動について、ちょっと詳しくみてみよう。 配列をそのまま与える つぎのように、配列をそのまま与えてみる ソース use strict; my @c = ('aaa', 'bbb', 'ccc'); print @c, "\n"; 結果 a…
でも、 ifで例外処理をするというのも、 なんだかなぁ〜という人のために、Java的な例外処理を可能にするモジュールがあります。 それが、Error.pm CPANから落としてくる必要はありますが、便利なモジュールだと思います。 ビンゴ中西のほげほげKansai.pm第1…
evalで囲ってしまって、dieさせない例を見てきました〜。 さてさて、次のようなことを考えてみましょう。 ファイルを無事にopenできた場合は、ファイルを読み込んで正常な処理をする。 もし、ファイルがopenできなかった場合はその旨をデータベースに残して…
warnを使えば、警告だけでて、プログラムが終了しないのをみてきましたが、誰かが作った関数の中で、 die されていたらおしまいです。 これは、まいりますねー。 use strict; # だれかが作った関数ということにする sub hoge { print '僕が作ったよ この関数…
die を書けば、プログラムはそこで終了してしまうわけですが、 warn にすると、プログラムは終了しません。これをつかって、 ファイルが open できなくても、警告メッセージを出すだけにとどめ、処理を続けることができます。 まず、dieを使った例を見てみて…