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 );"

c.bat を保存したフォルダには、検索パスを通しておきます。 これを使うと、コマンドラインで四則演算(10進数も16進数も OK!)、さらにはPerlの関数を含む式の計算結果を画面表示 してくれます。重宝してます。
 D:\>c (26 + 10) * 3
 108
 D:\>c (0x1a + 0x0a) * 3
 108
 D:\>c sqrt(25)+2
 7
 D:\>