Perl では正規表現中に ( ) が含まれていると,( ) で囲まれた部分にマッチした文字列が,左から順に $1, $2, $3, ... という変数に収められる。
パターンマッチを行うと,リストコンテキストでは,($1, $2, $3, ...) というリストを値として返すので,左辺に配列 あるいは変数からなるリストを置けば,( ) 部分にマッチした文字列を一気に変数に代入することができる。(「リスト」「配列」「リストコンテキスト」については Lesson 6,Lesson 7 を参照。)
次の例では,$hour, $minute, $second の値はそれぞれ 07, 10, 15となる。
----------------------------------------------------------------- $time = '07:10:15'; ($hour, $minute, $second) = $time =~ /([0-9]+):([0-9]+):([0-9]+)/; -----------------------------------------------------------------
値を代入したい変数が一つでも,リストコンテキストにするため,( ) を付ける必要がある。
----------------------------------------------------------------- $time = '07:10:15'; ($hour) = $time =~ /([0-9]+):[0-9]+:[0-9]+/; -----------------------------------------------------------------