2009-01-24から1日間の記事一覧

第41回 $!

ファイルをopenするときに関しての話を続けたいと思います。 前回のようなソース pen my $f, '<', 'hoge.txt' or die 'ファイルが開けないっす'; では、 ファイルに権限がなくて open できなくても、 ファイルそのものがなくて open できなかった場合でも、 …

第40回 例外処理とはそもそもなんぞや

例外処理。 ああ、プログラミングの70%は例外を処理するために書いているのではないか、 そんな気にもなったりするときがあるビンゴ中西です。 例外処理。例外処理とはそもそもなんなんでしょうね〜。 やってますか? 例外処理? 実装してますか? 例外処理…

第39回 evalを学習しよう part2

evalを使えばPerlでも例外処理ができます。 はい 拍手〜〜〜 パチパチパチ ということでevalを使った例外処理の例をみていきましょう。 次のソースをみてみてください。 Perlでは0での割り算はできません。 0で割り算すると、エラーとなりその行以降の処理は…

第38回 evalを学習しよう part1

今回は、 eval というものを説明します。 これのひとつの機能としては、「文字列をPerlの文として評価する」ということがあげられます。次の例をみてほしい。 ソース 単なる文字列を表示 use strict; my $c = q{print 'Hello', "\n";}; print $c, "\n"; 結果…

第37回 Perlで小技5

○ 配列からユニークなものだけ取り出す 配列からユニークなものを取得したいときは、ハッシュを使えばよい。 (いろんなページでソースが載っていますね) ソース1 use strict; use Data::Dumper; my @c = qw(aa bb cc dd aa cc ee ff gg ff); my %d; $d{$_}…

第36回 Perlで小技4

print について 今まで、なにげなしに、printを使ってきたが、 printの挙動について、ちょっと詳しくみてみよう。 配列をそのまま与える つぎのように、配列をそのまま与えてみる ソース use strict; my @c = ('aaa', 'bbb', 'ccc'); print @c, "\n"; 結果 a…

第45回 Java的な例外処理

でも、 ifで例外処理をするというのも、 なんだかなぁ〜という人のために、Java的な例外処理を可能にするモジュールがあります。 それが、Error.pm CPANから落としてくる必要はありますが、便利なモジュールだと思います。 ビンゴ中西のほげほげKansai.pm第1…

第44回 evalで例外処理

evalで囲ってしまって、dieさせない例を見てきました〜。 さてさて、次のようなことを考えてみましょう。 ファイルを無事にopenできた場合は、ファイルを読み込んで正常な処理をする。 もし、ファイルがopenできなかった場合はその旨をデータベースに残して…

第43回 dieをイバってdieさせない

warnを使えば、警告だけでて、プログラムが終了しないのをみてきましたが、誰かが作った関数の中で、 die されていたらおしまいです。 これは、まいりますねー。 use strict; # だれかが作った関数ということにする sub hoge { print '僕が作ったよ この関数…

第42回 warn

die を書けば、プログラムはそこで終了してしまうわけですが、 warn にすると、プログラムは終了しません。これをつかって、 ファイルが open できなくても、警告メッセージを出すだけにとどめ、処理を続けることができます。 まず、dieを使った例を見てみて…