参考書を学んでいます。Intermediate Perl (2nd edition) : Chapter 5 (References and Scoping) という本の中で、次のコードが与えられています:
my $ref;
{
my @skipper = qw(blue_shirt hat jacket preserver sunscreen); # ref count is 1
$ref = \@skipper; # ref count is 2
print "$ref−>[2]\n"; # prints jacket\n
}
print "$ref−>[2]\n"; # still prints jacket\n # ref count is 1
このコードを実行すると、次の出力が得られました。
ARRAY(0x83fc890)−>[2]
ARRAY(0x83fc890)−>[2]
プリントジャケットかと思った。
引用符なしで実行しようとすると、次の出力が得られました。
Unrecognized character \xE2; marked by <-- HERE after print $ref<-- HERE near column 12 at prog.pl line 5.
私はもう少し試しました:
$$ref[2]
#働いた
${$ref}[2]
#働いた
そう、
本に記載されているコードは間違っていますか? (良い本だと言われました - 私はそれを読んでいますが、それが素晴らしいと思います。それが印刷ミスだったのか、それとも私が何か間違ったことをしているのかはわかりません)