データの分解は、 / / で挟んだパターンが入っているかどうか調べることによって行われる。
if /パターン/ =˜ 変数変数がパターンに一致するならば
=˜ は指定された正規表現が一致するかどうかを調べるときに使う比較演算子である。 正規表現とは、文字列の一致を調べる方法である。 今の場合は以下の正規表現が使われている。
\S+ | 文字列の連続 |
\s+ | 空白文字の連続 |
\d+ | 数値文字列の連続 |
() | () 内に含まれる文字列を優先して探す |
数値文字列を探して取り込む正規表現で取り込んだ中身を
p
文で確認せよ。数値を取り込んだ場合、文字列を取り込んだ場合の結果を確認せよ。
正規表現は次週にも続く。 さて、文字列が空白文字を挟んで 4 回現れるため、
if /(\S+)\s+(\S+)\s+(\S+)\s+(\S+)/ =˜ 変数
となっている。() で優先された文字列は $1, $2, .. と順番に名前をつけられ、それらが配列の各成分として代入されている。
/(優先された文字列 1)優先されない文字列(優先された文字列 2)優先されない文字列 ... / =˜ 変数
# $1 は 優先された文字列 1 を引き取る
# $2 は 優先された文字列 2 を引き取る
:
データが 5 列で並んでいる場合は、 どのように分解する部分を書き換えたらよいだろうか。