■push
 配列の最後に要素を追加
 ―――――――――――――――――――――――――――――――――――――――
   push @a, $b ;        # 配列の最後に1つの要素を追加
   push @a, $b, $c, ・・・ ;    # 配列の最後に複数の要素を追加
   push @a, @b ;        # 配列の最後に配列を追加
 ―――――――――――――――――――――――――――――――――――――――
 ※. 追加する要素は複数(配列)でも可。
 
 ■pop
 配列の最後の要素を削除
 ―――――――――――――――――――――――――――――――――――――――
   pop @a ;           # 配列の最後の要素を削除
   $b = pop @a ;         # 削除した要素を引き渡す
 ―――――――――――――――――――――――――――――――――――――――
 ※. 変数に引き継ぐと、その削除した値を返す。
 
 ■unshift
 配列の先頭に要素を追加
 ―――――――――――――――――――――――――――――――――――――――
   unshift @a, $b ;       # 配列の先頭に1つの要素を追加
   unshift @a, $b, $c, ・・・ ;   # 配列の先頭に複数の要素を追加
   unshift @a, @b ;       # 配列の先頭に配列を追加
 ―――――――――――――――――――――――――――――――――――――――
 ※. 追加する要素は複数(配列)でも可。
 
 ■shift
 配列の先頭の要素を削除
 ―――――――――――――――――――――――――――――――――――――――
   shift @a ;          # 配列の先頭の要素を削除
   $b = shift @a ;        # 削除した要素を引き渡す
 ―――――――――――――――――――――――――――――――――――――――
 ※. 変数に引き継ぐと、その削除した値を返す。
 
 ■splice
 配列内の部分削除及び削除部分への任意要素(配列)の追加
 ―――――――――――――――――――――――――――――――――――――――
   splice @a, 削除開始番号 k ;              # k 番目以降を全て削除
   splice @a, 削除開始番号 k, 削除数 d ;         # 削除数を d に限定
   splice @a, 削除開始番号 k, 削除数 d, "要素・配列" ;  # 要素・配列を追加
 ―――――――――――――――――――――――――――――――――――――――
 ※. splice は本来継ぎ木という意味。
 
 ■undef
 未定義値にセット
 ―――――――――――――――――――――――――――――――――――――――
   undef "変数・配列・ハッシュ・サブルーチン" ;   # 未定義値にセット
 ―――――――――――――――――――――――――――――――――――――――
 
 ■grep
 配列内の各要素に対する判定
 ―――――――――――――――――――――――――――――――――――――――
   @b = grep 「条件A」, @a ;    # 条件を満たす部分配列
   $b = grep 「条件A」, @a ;   # 条件を満たす要素の数
 ―――――――――――――――――――――――――――――――――――――――
 ※1.「条件式」は評価式または正規表現によって記述。
 ※2. 変数に引き継ぐと、適合した要素の個数を返す。
 ※3. 配列そのものには影響を与えない。
 ※4.「条件式」を ( ) 付きの形で定義する場合、全体を ( ) で囲む必要がある。
    @b = grep ((条件A), @a) ;    # 全体を ( ) で囲む
 
 ■数値に対する各種 grep の値
  @a = qw (1 2 3 4 5 52 23 35 55 522 553 515 444 225 355 555 2345 ) ;













 
正規表現  正規表現の意味  grep の値
/\d/  数値を含む  全部
/2/  2 を含む  (2 52 23 522 225 2345)
/^5/  5 から始まる  (5 52 55 522 553 515 555)
/^[1-2]/  1〜2 で始まる  (1 2 23 225 2345)
/5$/  5 で終わる  (5 35 55 515 225 355 555 2345)
/55./  55? を含む  (553 555)
/2../  2?? を含む  (225 2345)
/.3/  ?3 を含む  (23 553 2345)
/..5/  ??5 を含む  (515 225 355 555 2345)
/2|3/  2 または 3 を含む  (2 3 52 23 35 522 553 225 355 2345)
/[23]/  2 または 3 を含む  (2 3 52 23 35 522 553 225 355 2345)
/[0-2]/  0〜2 の何れかを含む  (1 2 52 23 522 515 225 2345)
/[^2-5]/  2〜5 以外を含む  (1 515)
 ※.「意味」の中の ? は任意の1文字を表す(正規表現とは無関係)。
 
 ■日本語に対する各種 grep の値
  @a = ("明", "明暗", "照明", "照合", "ラドン", "ラジウム") ;










 
正規表現  正規表現の意味  grep の値
/\D/  数値以外を含む  全部
/明/  明 を含む  ("明", "明暗", "照明")
/^照/  照 から始まる  ("照明", "照合")
/明$/  明 で終わる  ("明", "照明")
/ラ..ム
/
 ラ??ム を含む
 
 ("ラジウム")
 
/合|ン/  合またはンを含む  ("照合", "ラドン")
/[暗ウ]
/
 暗またはウを含む
 
 ("明暗", "ラジウム")
 
/[^照明]/  照または明以外を含む  ("明暗", "照合", "ラドン", "ラジウム")
 ※.「意味」の中の ? は任意の1文字を表す(正規表現とは無関係)。
 
 ■map
 ―――――――――――――――――――――――――――――――――――――――
   map 「演算A」, @a ;       # 要素に対する演算
   @b = map 「条件A」, @a ;    # 条件に対する真偽の結果
   $b = map 「条件A」, @a ;    # 条件を満たす要素の数
 ―――――――――――――――――――――――――――――――――――――――
 ※1. 配列要素に対する演算式は、特殊変数 $_ で記述する。
 ※2. 特殊変数 $_ は前後関係から省略可。
 ※3. 条件に対する真偽の結果                  
    評 価 式:「真」→ 1 / 「偽」→ " "(空白)
    正規表現:「真」→ 1 / 「偽」→ ""(なし)
 ※3. 変数に引き継ぐと、「真」「偽」である要素の個数を返す。
    「偽」の場合: " "(空白)→ 1 / ""(なし)→ 0
 ※4. 条件式をかっこで定義する場合は、全体を更にかっこで囲む。
    @b = map ((条件A), @a) ;    # 全体を更に ( ) で囲む
 
 ■map + 「組み込み関数」
 ―――――――――――――――――――――――――――――――――――――――
     @b = map 「組み込み関数」, @a ;
 ―――――――――――――――――――――――――――――――――――――――
 
 ■組み込み関数
  配列内の大文字・小文字変換





 
関  数  意   味
 lc  文字全部を小文字に変える
 lcfirst  先頭の文字を小文字に変える
 uc  文字全部を大文字に変える
 ucfirst  先頭の文字を大文字に変える
 length  文字列の長さ
 ※1. 特に指定がない場合は、特殊変数 $_ を対象とする。
 ※2. 配列@ に引き継ぐ形をとらないと変化しない。
 ※3. エスケープ・シークエンスによる変換は元データを変えないが、この変換は
    元データを変える。
 ※4. 比較3値演算子を用いる場合は、文字列用の cmp を使う。
    但し、length 関数は値を数値として返すので、この場合は数値用の <=> を使う。
 
 ■reverse
 配列内の要素の逆順並べ替え
 ―――――――――――――――――――――――――――――――――――――――
   @b = reverse @a ;    # 配列に引き継ぐ形をとる
 ―――――――――――――――――――――――――――――――――――――――
 ※1. 1つの要素になっている文字列の場合は、まず split によって一旦配列化し、
    並べ替え替えた後 join によって再び文字列化する。
 ※2. 元データの順序は変わらない。
 
 ■sort
 配列内の要素の並べ替え
 ―――――――――――――――――――――――――――――――――――――――
   @b = sort @a ;
 ―――――――――――――――――――――――――――――――――――――――
 ※.1 元データの順序は変わらない。
 ※.2 並び替えは ASIIコード順によって行う。
 ※.3 ASIIコード順以外の並べ替えを行うには、専用内部サブルーチンを用いる。
 ※.3 組み込み関数を併用すると、更に詳細な並び替えが行える。
 
 ■外部ファイルの読み込みと表示


 
 内 容  命 令
 読み込み  @a = <F> ;
 表  示  print <F> ;
 
 ■外部ファイルのループ処理


 
 ループ  指定なし(特殊変数 $_ )  中間変数 $k を指定
 while  while (<F>) {行処理 X}  while ($k = <F>) {行処理 X}
 for  for (<F>) {行処理 X}  for $k (<F>) {行処理 X}