« 8.4 ディレクトリ内のファイル連続処理 | トップページ | 「すぐわかるPerl」 8.7 制御構造としてのand,or »

2008年9月22日 (月)

「すぐわかる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 &");
}

|

« 8.4 ディレクトリ内のファイル連続処理 | トップページ | 「すぐわかるPerl」 8.7 制御構造としてのand,or »

Perl」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/214806/42491994

この記事へのトラックバック一覧です: 「すぐわかるPerl」 8.5 エラーチェックを入念に 8.6 バッククォートでコマンドの結果を知る:

« 8.4 ディレクトリ内のファイル連続処理 | トップページ | 「すぐわかるPerl」 8.7 制御構造としてのand,or »