自分が作ったモジュールを、他の場所で利用したいとき、エラーの特定に時間がかかることがある。
特にモジュール関係でエラーがあり、sshなどで確認できない場合はブラウザに500エラーが出るだけのこともある。
そこで、エラーメッセージをわかりやすく表示すると汎用性が増すかもしれない。
スポンサードリンク
◆標準的
わざわざ書かなくてもperlがエラーを出してくれるけど。
eval ‘use Oraperl; 1’ || die $@ if $] >= 5;
eval ‘require Oraperl; 1’ || die $@ if $] >= 5;
eval {require Oraperl; 1} || die $@ if $] >= 5;
◆コンパイル時にエラーを出させる
BEGIN {
eval {
require Digest::MD5;
import Digest::MD5 ‘md5_hex’
};
if ($@) { # ups, no Digest::MD5
require Digest::Perl::MD5;
import Digest::Perl::MD5 ‘md5_hex’
}
}
◆実行時に分岐する
eval{
require HOGEHOGE;
};
if($@){
print “Load NG\n”;
}else{
import HOGEHOGE qw(a b c);
print “Load OK\n”;
}
参考文献
- perlで eval ‘use~ ってどういうこと! :
perlで eval 'use〜 ってどういうこと! - Digest::MD5::Perl – Ron RivestsのMD5アルゴリズムのPerlによる実装 :
Digest::Perl::MD5 - Ron RivestsのMD5アルゴリズムのPerlによる実装 - perldoc.jpRon RivestsのMD5アルゴリズムのPerlによる実装
コメント