リファレンスの扱い方

PHP/Javaエンジニアがperlエンジニアになる②

リファレンス

取得

my $i = 1;
my $ref = \$i; #参照

\とつけると参照の取得になる

配列も同様に

my $arr_ref = \@array

参照の先の値を取りたいときは

スカラーなら$をつける

print $$i;

配列なら@をつける

for(@$ref){
 print "$_", "\n";
}

配列の中身(がスカラーなら)$

$$ref[0]

要はリファレンスに限らず$スカラーを取るとき、@は配列を取るとき、%はハッシュを取るときに先頭につける

リファレンス的には$,@,%つけると覚えるより、$をつけると覚えたほうがわかりやすいかも

$ref->[0]

この方がスッキリわかりやすい

多次元配列

こうはかけない

$arr = (
  (1,2),(3,4),(5,6)
);

展開されて(1,2,3,4,5,6)とおなじになる

$arr = (
 [1,2],[3,4],[5,6]
);

リファレンスで作る必要がある なんともまあ面倒な仕様

これはハッシュも同じ