in reply to operation inside reference
$doc->{links} is assumed to be either an array reference or undefined. If it is undefined, the // defined-or operator (new with Perl version 5.10, see Logical Defined-Or in perlop) will evaluate the [] anonymous array constructor to create a reference to an empty array. The @{ } expression will de-reference to a (possibly empty) list either the valid $doc->{links} reference or the empty reference. (Any expression may be evaluated within a @{ } dereference.) If the // operator had not been available, the || operator would probably have served as well since all genuine references are true and the undefined value is false.
|
|---|