「すぐわかるPerl」 8.5 エラーチェックを入念に 8.6 バッククォートでコマンドの結果を知る
$argn = ($filter,$oldext,$newext) = @ARGV; #引数を1個目から$filter,$oldext,$newext に格納
unless ($argn == 3){ # @ARGVをスカラーコンテキストで評価した
# 時に3ではない場合、下のテキストを吐いて止まる。
die "argument must be three\n".
"usage : rep filter old_extention new_extention\n";
}
@files = glob("*.$oldext"); #oldextに該当する拡張子を持つファイルを@filesに格納
unless (@files + 0 ){
die "extention \"$oldext \" no match\n;.
"usage: rep filter old_extention new_extention\n";
}
if (`which $filter` =~ /^no /){ # `(バッククォート)でUNIXコマンドを囲むと
# そのコマンドが実行され、標準出力に出力される文字列が
# 値として返る。
# $a=`コマンド` だとコマンドの結果がすべて$aに入る
# @a=`コマンド` だとコマンドの結果が1行1要素に入る
die "filter \"$filter\" not found\n".
"usage :rep filter old_extention new_extention\n";
}
foreach(@files){
/(.*)\.$oldext/;
print("$filter < $1.$oldext > $1.$newext &\n");
system("$filter < $1.$oldext > $1.$newext &");
}
| 固定リンク
「Perl」カテゴリの記事
- 「すぐわかるPerl」 8.10 ディレクトリのリカーシブ処理(その2)(2009.02.24)
- 「すぐわかるPerl」 8.10 ディレクトリのリカーシブ処理(その1)(2009.02.23)
- 「すぐわかるPerl」 7.6 マッチした文字列と、その前後の文字列を扱う変数(2008.06.17)
- 「すぐわかるPerl」 8.9 コマンドの入出力に入出力を切り替える(2008.11.12)
- 「すぐわかるPerl」 8.8 標準入出力以外のファイルの制御(2008.10.08)









コメント