perl 指定したファイルを削除する
#指定したファイルを削除する #unlink.pl $file = <STDIN>; chomp($file); unlink($file) || die "$fileを削除できません:$!\n"; #実行結果 # $ perl unlink.pl # testtesttesttxt
- 作者: Randal L. Schwartz,brian d foy,Tom Phoenix,近藤嘉雪
- 出版社/メーカー: オライリージャパン
- 発売日: 2012/07/25
- メディア: 大型本
- 購入: 7人 クリック: 22回
- この商品を含むブログ (17件) を見る
perl 指定したファイルを指定した名前に変更する
#指定したファイルを指定した名前に変更するスクリプト #ファイル名の変更 #rename.pl print "変更前のファイル名>"; $from_file = <STDIN>; print "変更後のファイル名>"; $to_file = <STDIN>; chomp($from_file, $to_file); #名前の変更 rename($from_file, $to_file) || die "$from_file から $to_file に名前変更出来ません。:$!\n"; #実行結果 # 変更前のファイル名>test.txt # 変更後のファイル名>testtesttesttxt
- 作者: Randal L. Schwartz,brian d foy,Tom Phoenix,近藤嘉雪
- 出版社/メーカー: オライリージャパン
- 発売日: 2012/07/25
- メディア: 大型本
- 購入: 7人 クリック: 22回
- この商品を含むブログ (17件) を見る
perl ENDを着くんだ文字列が入るまで標準エラー出力に表示する
#キーボードの入力を、キーワードENDを含んだ文字列が入るまで、そのまま標準エラー出力に表示するスクリプト while(1){ $string = <STDIN>; if($string =~ /END/){ exit; }else{ print STDERR $string; } } #実行結果 # abc # abc # def # def # ghi # ghi # END
- 作者: Randal L. Schwartz,brian d foy,Tom Phoenix,近藤嘉雪
- 出版社/メーカー: オライリージャパン
- 発売日: 2012/07/25
- メディア: 大型本
- 購入: 7人 クリック: 22回
- この商品を含むブログ (17件) を見る
perl ARGV
#引数の数と内容を表示する。 #引数の数を表示 print "ARGVの数:".@ARGV."\n"; #各引数の内容を表示 for($number = 0; $number< @ARGV; $number++){ print "引数$number: $ARGV[$number]\n"; } #実行結果 # $ perl argv.pl # ARGVの数:0 # $ perl argv.pl practical extraction and report language # ARGVの数:5 # 引数0: practical # 引数1: extraction # 引数2: and # 引数3: report # 引数4: language
- 作者: Randal L. Schwartz,brian d foy,Tom Phoenix,近藤嘉雪
- 出版社/メーカー: オライリージャパン
- 発売日: 2012/07/25
- メディア: 大型本
- 購入: 7人 クリック: 22回
- この商品を含むブログ (17件) を見る
perl 標準入力または引数に指定したファイルを表示する
#標準入力または引数に指定したファイルをそのまま表示する #標準入力とファイルの双方を受け取るスクリプト #which.pl #標準入力、ファイルのどちらかを取得 while(<>){ #内容を表示 print; } #perl which.plのように引数を指定しないで実行すると、標準入力を受け取る #待機状態になる。文字列を入力してenterキーを押すとその文字列がエコーバッ #クされ待機状態に戻る。perl which.pl test.txtのようにwhich.plに引数を #指定すると、引数をファイル名とみなしてオープンし、その内容を入力とし #て受け取り、画面に出力する。 #実行結果 # $ perl which.pl # hello # hello # hello # hello # how # how # low # low # ^C # $ perl which.pl copyFile.txt # これをこぴー
- 作者: Randal L. Schwartz,brian d foy,Tom Phoenix,近藤嘉雪
- 出版社/メーカー: オライリージャパン
- 発売日: 2012/07/25
- メディア: 大型本
- 購入: 7人 クリック: 22回
- この商品を含むブログ (17件) を見る
perl 出力先を標準出力と標準エラー出力に分ける
#出力先を標準出力と標準エラー出力に分ける #標準出力と標準エラー出力の違い #std.pl #標準出力 print STDOUT "標準出力に出力しています。\n"; #標準エラー出力 print STDERR "標準エラー出力に出力しています。\n"; #実行結果 # $ perl std.pl # 標準出力に出力しています。 # 標準エラー出力に出力しています。 # #$ perl std.pl > stdout.txt # 標準エラー出力に出力しています。 # #$ cat stdout.txt # 標準出力に出力しています。
- 作者: Randal L. Schwartz,brian d foy,Tom Phoenix,近藤嘉雪
- 出版社/メーカー: オライリージャパン
- 発売日: 2012/07/25
- メディア: 大型本
- 購入: 7人 クリック: 22回
- この商品を含むブログ (17件) を見る
perl 標準入力STDIN
#標準入力からの入力を受け、それをそのまま表示する。(エコーバック)実行後、文字列を入力してEnterキーを押すと画面にその文字列を表示した後、また入力を待つ。QUITを含む文字列を入力するとスクリプトを終了する。 #入力をそのままエコーする #echo.pl do{ #標準入力から取り込む $string = <STDIN>; #表示する print $string; #QUITを含む文字列が入ると終了する }until ($string =~ /QUIT/); #実行結果 # hello # hello # world # world # QUIT # QUIT
- 作者: Randal L. Schwartz,brian d foy,Tom Phoenix,近藤嘉雪
- 出版社/メーカー: オライリージャパン
- 発売日: 2012/07/25
- メディア: 大型本
- 購入: 7人 クリック: 22回
- この商品を含むブログ (17件) を見る
perl ファイルのコピー
#コピー元のファイル名とコピー先のファイル名を入力するとファイルのコピーを行うスクリプト #ファイルの内容を別のファイル名のファイルにコピーする #copy2.pl print "コピー元のファイル名を指定してください>"; $from_file = <STDIN>; print "コピー先のファイル名を指定してください>"; $to_file = <STDIN>; chomp($from_file, $to_file); #それぞれのファイルをオープン open(F, $from_file) || die "$from_file をオープンできません:$!\n"; open(F2, ">$to_file") || die "to_file を作成できません:$!\n"; while(<F>){ #コピー元のファイルから読み込み、コピー先のファイルに書き出す print F2; } close(F2); close(F); #実行結果 # cat copyFile.txt # これをこぴー # perl copy2.pl # コピー元のファイル名を指定してください>copyFile.txt # コピー先のファイル名を指定してください>pasteFile.txt # cat pasteFile.txt # これをこぴー
- 作者: Randal L. Schwartz,brian d foy,Tom Phoenix,近藤嘉雪
- 出版社/メーカー: オライリージャパン
- 発売日: 2012/07/25
- メディア: 大型本
- 購入: 7人 クリック: 22回
- この商品を含むブログ (17件) を見る
perl 追加書き出し
#output.txtを追加書き出し用としてオープンし文字列を追加する #追加出力ファイルに文字列を書き出す # append.pl #追加出力ファイルとしてオープン open(F, ">>output.txt") || die "output.txtに追加できません。$!\n"; #文字列をファイルハンドルFに書き出し print F "こんばんは、花子さん\n"; close(F); #実行結果 # こんにちは、太郎さん。 # こんばんは、花子さん
- 作者: Randal L. Schwartz,brian d foy,Tom Phoenix,近藤嘉雪
- 出版社/メーカー: オライリージャパン
- 発売日: 2012/07/25
- メディア: 大型本
- 購入: 7人 クリック: 22回
- この商品を含むブログ (17件) を見る
perl 文字列の書き出し
#output.txtを書き出し用としてオープンし、文字列を書き出す #出力ファイルに文字列を書き出す #write.pl #新規出力用としてオープン open(F, ">output.txt") || die "output.txtを作成できません:$!\n"; #文字列をファイルハンドルFに書き出し print F "こんにちは、太郎さん。\n"; close(F); #実行結果 # $cat output.txt # こんにちは、太郎さん。
- 作者: Randal L. Schwartz,brian d foy,Tom Phoenix,近藤嘉雪
- 出版社/メーカー: オライリージャパン
- 発売日: 2012/07/25
- メディア: 大型本
- 購入: 7人 クリック: 22回
- この商品を含むブログ (17件) を見る
perl ファイルのオープンとクローズ
オープンするためのファイルを作成しておく
てすとてきすと テストテキスト test.txt
ファイルをオープンして内容を表示するスクリプト
#ファイルtest.txtを読み込み専用でオープンした後、その内容を画面に表示してからクローズする。 #ファイルをオープンし、その内容を表示する #open.pl #ファイルをオープンする open(F, "test.txt") || die "test.txtをオープンできません:$!\n"; #ファイルハンドルに対応するファイルの内容が1行ずつ読みこまれて特殊変数$_に入り中身が実行される。 while(<F>){ #内容を表示 print; } #ファイルのクローズ close(F); #実行結果 #てすとてきすと #テストテキスト #test.txt
- 作者: Randal L. Schwartz,brian d foy,Tom Phoenix,近藤嘉雪
- 出版社/メーカー: オライリージャパン
- 発売日: 2012/07/25
- メディア: 大型本
- 購入: 7人 クリック: 22回
- この商品を含むブログ (17件) を見る
perl utf8モジュール
#utf8モジュールを使って、UTF-8文字エンコーディングで日本語変数名を指定する。 #UTF-8の変数名を使う # utf8_consumption_duty.pl #モジュール呼び出し use utf8; $消費税率 = 0.08; print "subtotal: "; $小計金額 = <STDIN>; chomp($小計金額); $消費税額 = $小計金額 * $消費税率; $合計金額 = $小計金額 + $消費税額; print "tax: ${消費税額} yen\n"; print "total amount: ${合計金額} yen\n"; #このスクリプトがUTF-8で保存されていれば変数名に日本語を使っていても実 #行時にエラーは起きない。変数名の範囲を明示するために{}で囲んでいる。 #実行結果 # subtotal: 10000 # tax: 800 yen # total amount: 10800 yen
- 作者: Randal L. Schwartz,brian d foy,Tom Phoenix,近藤嘉雪
- 出版社/メーカー: オライリージャパン
- 発売日: 2012/07/25
- メディア: 大型本
- 購入: 7人 クリック: 22回
- この商品を含むブログ (17件) を見る
perl Benchmarkモジュール
#オブジェクト指向モジュールの一つBenchmarkを使ってベンチマークのテストを行う #ベンチマーク #benchmark.pl #モジュール呼び出し use Benchmark; #1つ目のベンチマークオブジェクト $before_time = new Benchmark; #500000カウントの計算 &recursive(50000); #2つ目のベンチマークオブジェクト $after_time = new Benchmark; #2つのベンチマークから結果を求める $diff = timediff($after_time, $before_time); #表示 print "結果:", timestr($diff), "\n"; #時間を計測するための再帰呼び出し sub recursive{ my($number) = @_; #1つずつカウンタを減らして0になるまで再帰呼び出しを行う &recursive(--$number) if ($number); } #$before_timeと$after_timeという2つのオブジェクトをBenchmarkクラスから #生成している。それぞれのオブジェクトは挙動や変数の管理が独立しており、 #相互に干渉しない。次に、timediff(2つのBenchmarkオブジェクトの間の時間 #の差を返すサブルーチン)とtimestr(timediffサブルーチンの戻り値オブジェ #クトを文字列に変換するサブルーチン)という2つのサブルーチンを使ってお #互いのオブジェクトを比較し表示する。 #実行結果 # 結果: 1 wallclock secs ( 0.03 usr + 0.01 sys = 0.04 CPU)
- 作者: Randal L. Schwartz,brian d foy,Tom Phoenix,近藤嘉雪
- 出版社/メーカー: オライリージャパン
- 発売日: 2012/07/25
- メディア: 大型本
- 購入: 7人 クリック: 22回
- この商品を含むブログ (17件) を見る
perl copyモジュール
#File::Copyを使ってファイルをコピー #copy.pl #モジュール呼び出し #File::Copyモジュールを呼び出す use File::Copy; #引数が二つ以上の時はusageサブルーチンを呼び出してコピー命令の使い方を表示する。 if(@ARGV != 2){ #引数が2つ以上の時には使い方を表示 &usage(); } #モジュールのルーチン実行 #引数をたd如く2つ指定した場合はcopyサブルーチンを実行する。 #エラーの判定には$!にエラー原因が入る(特殊な変数) copy($ARGV[0], $ARGV[1]); print "コピー中にエラーが発生しました($!)。\n" if($!); #使い方を表示 #使い方を表示した後exit関数によってスクリプトを終了する。 sub usage{ print <<EOT copy.pl:ファイルのコピー copy.pl コピー元ファイル名 コピー先ファイル名 EOT ; exit(1); } #コマンドラインにperl copy.pl test.txt xxx.txt # と入力してスクリプトを実行すると現在のディレクトリにあるファイルtet.txtがxxx.txtにコピーされる。
- 作者: Randal L. Schwartz,brian d foy,Tom Phoenix,近藤嘉雪
- 出版社/メーカー: オライリージャパン
- 発売日: 2012/07/25
- メディア: 大型本
- 購入: 7人 クリック: 22回
- この商品を含むブログ (17件) を見る
perl パッケージ
helloという名前のパッケージを定義する
#パッケージ化したhelloモジュール # hello_package.pm # helloという名前でパッケージを定義 package hello; #このサブルーチンはhello::helloとして呼び出す sub hello{ my($name) = @_; print "こんにちは、$nameさん。\n"; } 1;
これを次のスクリプトで呼び出す。
# hello_packageを呼び出す # hello_package_call.pl #パッケージ呼び出し use hello_package; #パッケージ名をつけずに呼び出し #hello_package_call.pl内にあるhelloサブルーチンが呼び出される &hello("太郎"); #パッケージ名をつけて呼び出し #hello_package.pmのhelloサブルーチンが呼び出される &hello::hello("太郎"); #同名のサブルーチンを定義 sub hello{ my($name) = @_; print "さようなら、$nameさん。\n"; } #実行結果 # さようなら、太郎さん。 # こんにちは、太郎さん。
- 作者: Randal L. Schwartz,brian d foy,Tom Phoenix,近藤嘉雪
- 出版社/メーカー: オライリージャパン
- 発売日: 2012/07/25
- メディア: 大型本
- 購入: 7人 クリック: 22回
- この商品を含むブログ (17件) を見る