5部 関数リファレンス

do

2011年9月20日
do EXPR

EXPRの値としてファイル名を指定すると、そのファイルの中身をPerlスクリプトとして実行します。主に、Perlのサブルーチンライブラリからサブルーチンをインクルードするために用います。

# stat.pl をスクリプトとして実行する
# 普通は require を使った方が効率が良い
do "stat.pl";
# 上記doと同じ動作をします
scalar eval `cat stat.pl`;

上記のように、scalar eval `cat stat.pl`でもdoと同じことができますが、doのほうが効率的でです。doは、エラーメッセージでファイル名がわかり、カレントディレクトリでファイルが見つからなかったときに@INCライブラリを検索する、ファイルがあったときに%INCを更新する、といった処理を行います。

ライブラリモジュールのインクルードには、use演算子やrequire演算子を使った方が良いでしょう。これらは自動的にエラーをチェックして、問題があれば例外を発生させます。

doの使い方

doをプログラム設定ファイルを読み込むのに使う際の簡単なサンプルです。

for $file ("defaults.rc","$ENV{HOME}/.prc") {
unless ($return = do $file) {
warn "couldn't parse $file: $@" if $@;
warn "couldn't do $file: $!" unless defined $return;
warn "couldn't run $file" unless $return;
}
}

Comment

コメントを残す

メールアドレスが公開されることはありません。

リズムファクトリーはホームページの制作会社です。
ホームページ制作に関するご要望・ご相談はこちらからどうぞ。