Note 10 <注1> ' ' と " " のどちらも使えるということには、いくつかの利 点があります。 まず、文字列の中にクォートを含みたい時に便利です。 ' を含みたい。→ >perl -e "print 'Hello!'; " " を含みたい。→ >perl -e 'print "Hello!"; ' " " にだけ「変数展開」という便利な機能(詳細はPerlの解説 書をあたって下さい)があるため、それを見越した使い分けも 可能です。 変数展開をするため文字列をどうしても " " で囲みたい、し かも中に " を入れたいという場合もあります。 その場合は \" を使って、下記のように記述します。 $ans='☆'; print "答えは \"$ans\" です。"; (実際の出力は "答えは"☆"です。" と展開される。) $ans='☆'; print '答えは "$ans" です。'; (実際の出力は "答えは"$ans"です。" と表示される。) <注2> 本文で紹介した以外の制御文です。 if(条件式){ 文; } elsif(条件式){ 文; } else{ 文; } elsif(条件){文;} は複数置けます。 unless(条件式){ 文; } 条件式が FALSE だったら {文;} を実行します。 for(変数=初期値;終了条件式;変数を更新){ 文; } for($i=0;$i>10;$i++){文;} などとして、 一定回数の繰り返し処理などに使います。 foreach $i (リスト){文; } foreach $i (配列変数){文;} などとして、 リスト総当たりの処理などに使います。 until(条件式){文; } 条件式が FALSE である間、 {文;} を繰り返します。 do{文; } while(条件式); do{文; } until(条件式); while(条件){文;} の場合、一回目の評価で条件式が FALSE だと {文;} を1回も通らずに終了してしまい ます。上記は、最低1回は必ず通過できる形です。 ループを抜けたりジャンプするための文もあります。 { last; } 最も内側のブロックを抜けます。 { next; } 今の繰り返しを中断し、次のループへ移ります。 goto LABEL ラベルの位置へジャンプします。 <注3> 第9章の注1 ここをクリック <注4> Perlの特殊変数は非常に多いのですが、文字列検索・置換に絡 むものを中心に、いつくかご紹介します。 $0 実行中のPerlスクリプトのファイル名。 ・正規表現に関するもの $1 〜 $9 ( ) による部分一致文字列を参照する。 $& マッチした文字列。 $` マッチした部分より前の文字列。 $' マッチした部分より後ろの文字列。 ・ファイル入出力に関するもの $ARGV <> で読み込み中の実ファイル名。 $. 入力ファイルから読み込んだ現時点での総行数。 $/ 行区切り文字。デフォルトは"\n"。 $\ print 出力の末尾に付加される文字。 デフォルトは空文字。 <注5> 便利なPerl電卓を作ってみましょう。 バッチファイル c.bat を作り、下記の2行を記述します。
c.bat - メモ帳 |
ファイル(F) 編集(E) 書式(O) ヘルプ(H) |
@echo off perl -e "print ( %1%2%3%4%5%6%7%8%9 );" |
D:\>c (26 + 10) * 3 108 D:\>c (0x1a + 0x0a) * 3 108 D:\>c sqrt(25)+2 7 D:\> |