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; } }