in reply to The @$ array construct

$OrigArray is a plain scalar variable. It probably contains an array reference. Saying @$OrigArray is equivalent to @{$OrigArray} and is somewhat like saying @array (if you had a different array named @array). In this case the element access syntax differs slighly because you are working with an array reference and not directly. For example, $array[0] would be written as $OrigArray->[0]. In fact, you should immediately run over to perlreftut.