-
Perlでevalを使ってみる 2007-07-27 00:00:00
- 続・初めてのPerl 改訂版
- 出版社/メーカー: オライリー・ジャパン
- メディア: 大型本
- 発売日: 2006-10-21
「「続・初めてのPerl 改訂版」」を使ってPerlの勉強をしています。今日はevalについて。evalは関数で、ブロック内や文字列内をPerl構文として評価するのだけど、このあたりはRubyと一緒。でもRubyでは全然evalを使ったことがないので、初めてみたいなものです。おもしろいのが、eval中のエラーはプログラムが終了せずに、変数$@にエラーメッセージが格納されるところ。例外処理みたいに使えるようです。
#!/usr/bin/perl my ($a, $b) = @ARGV; my $c = eval{$a / $b}; if ($@) { print "err:$@"; } else { print "$c\n"; } print "here is end of program!\n";普通は0で除算する時点でエラーが発生してプログラムが終了しますが、evalを使うとエラーメッセージを表示して、さらに処理を続行することができます。ただし、Perl自身が停止するような致命的なエラーはキャッチできないとのこと。
[tsukasa@] $ ./test.pl 10 2 5 here is end of program! [tsukasa@] $ ./test.pl 10 0 err:Illegal division by zero at ./test.pl line 4. here is end of program!
土日は旅行に出かけるので、今日、不在者投票をしてきました。
ボクシングの亀田兄弟がテレビに出ています。彼らを見るたびに、ぼくは弟たちを思い出す。ぼくの弟たちは、あの亀田兄弟に顔も喋り方も言うこともよく似ているのです。他人とは思えん。

コメント(
リンク元(1038)