- ベストアンサー
Perlプログラム:多くのファイルの名前を一度に変更する方法
- 下記のPerlのプログラムは、多くのファイルの名前を一度に変更する方法を示しています。
- このプログラムは、Perlを初めて使う人にとってもわかりやすく書かれています。
- プログラムの各行について説明をします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
なぜ,急ぎなのですか? > 9. 出来ればプログラムの一行一行について説明をして下さい。 急ぎなのにこれが必要な理由がちょっとわからない. > 8. このプログラムにおいてファイルは どこのディレクトリでもリネーム出来るのでしょうか? これは,試せばわかるはずです. こんなところで聞くよりよっぽどはやいですよ. ------------------------------------------------------------ 回答 以下はperlの基本です. $から始まるものは変数名です. @から始まるものは配列変数名です. 表示したいメッセージなど,特定の文字列は""で囲む. 質問 に対する回答 > 1. opは何ですか? opという名前の変数. op 自体はスクリプトの作者がかってにつけたので, 実はなんでもよい > 2. Usageは何ですか? ”使い方”の意味の英単語. > 3. exprは何ですか? おそらく,何か適当な「式または表現」(expression) の意味. 一般的ではないが,コンピューター関係ではよく使われる略語. > 4. ARGVは何ですか? 配列変数名だが,やや特殊な変数. この場合は @ARGV = <STDIN> によって,キーボードなどから一行読み込み, それが単語単位で分割され,@ARGVに代入される. > 5. evalは何ですか? 「評価する」ためのコマンド.つまり,指定の文字列をコマンドとして実行する. eval $op; では,変数opに入っている文字列をコマンドとして実行する.? > 6. wasは何ですか? 変数 > 7. eqは何ですか? 「等しい」を表す 演算子 > 8. このプログラムにおいてファイルは どこのディレクトリでもリネーム出来るのでしょうか? できます.使い方は少し工夫がいるかもしれません. ためしてみてできなかったら, どのようなコンピューターで(Windows 98, UNIX 等), どのように実行し,(コマンドプロンプトを開き,"rename xxxx xxxxと入力した"等) どのような結果になったかという情報も書いてください. > 9. 出来ればプログラムの一行一行について説明をして下さい。 #! /usr/bin/perl 実行開始時に,キーボードから入力した内容は記憶されている. 例 単語1 = rename 単語2= s/f/g/ 単語3= f1.txt 単語4=f2.txt $op = shift or die"Usage: rename expr [files]\n"; shift というコマンドを実行する. 実行できなかったら, die"Usage: rename expr [files]\n" を実行する. shiftを実行すると,配列の内容がひとつずれる. 指定しなければ,@ARGV コマンド実行時に キーボードから入力した内容がずらされれる. 例 単語1 = rename 単語2= s/f/g/ 単語3= f1.txt 単語4=f2.txt $was = $_; file名を変数wasに記憶しておく eval $op; 変数opをコマンドとして実行する.$_に対して,かなぁ rename($was,$_) unless $was eq $_; 変数"was"が変数"_"と 等しく なければ ファイル名を変更する. あと, chomp(@ARGV = <STDIN>) unless @ARGV; for (@ARGV) die $@ if $@; が残ってますが,時間がないのでこのへんで失礼します. 急ぎの理由=レポートの課題の締め切りが連休明け かなにかでしょうか. がんばってください. 入門書を買いましょう.買ってあるなら,読みましょう.
その他の回答 (1)
- wolv
- ベストアンサー率37% (376/1001)
使っているコンピューターのOSは何ですか? どこにインストールして, どのように実行して, 何にそのエラーメッセージが表示されたのですか?
お礼
有難うございました。 急ぎの理由は宿題とかじゃないんですけど、 ゆっくり勉強してる時間が無いので・・・ あと、プログラミングがうまくいったか確認できないんです・・・ ”ページが見つかりません”になってしまって・・・ インストールは正常に出来たはずなのに・・・ 何でですかね?