Perlでの矢印演算子『->』の省略について
矢印演算子『->』は、リファレンスをデリファレンスする場合に使用します。
たとえば、スカラー変数 $x に無名配列のリファレンスが代入されているとします。
そのとき、無名配列の0番目の要素を表示するには、以下のようになります。
my $x = [1,2,3]; print ${$x}[0], "\n"; # 0番目の要素を表示 print $x->[0], "\n"; # 0番目の要素を表示
また、配列変数 @y の要素に無名配列のリファレンスが代入されているとします。
そのとき、無名配列の0番目の要素を表示するには、以下のようになります。
my @y = ([1,2,3]); print ${$y[0]}[0], "\n";# 0番目の要素を表示 print $y[0]->[0], "\n"; # 0番目の要素を表示 print $y[0][0], "\n"; # 0番目の要素を表示
実は、上記や下記サンプルのように大括弧(ブラケット)や中括弧(ブレース)の間にはさまれた矢印は省略可能なのです。
また、閉じブラケットまたは閉じブレースと、間接サブルーチン呼び出しの小括弧(パーレン)の間も矢印が省略可能です。
・サンプル1(以下の2つは等価)
$aaa[$i]->{$index}->[$j] $aaa[$i]{$index}[$j]
・サンプル2(以下の2つは等価)
$subx[3]->(1,2,3); $subx[3](1,2,3);