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.