use strict; use Data::Dumper; sub Test { my($OldRef, $RefToRef) = @_; $RefToRef = $OldRef->{ AA }; printf STDOUT ( "-->%s<--\n-->%s<--\n", Dumper( $OldRef ), Dumper( $RefToRef ) ); } my( $NewRef ); my( $OusideRef ) = { AA => [ 1, 2 ] }; Test($OusideRef, $NewRef); printf STDOUT ( "-->%s<--\n-->%s<--\n", Dumper( $NewRef ), Dumper( $OusideRef ) );