my @array = ( 'foo', 'bar', 'baz' ); my ($pos) = grep { $array[$_] eq 'bar' } 0..$#array; my $ref_to_element = \$array[$pos]; push (@array, splice(@array, $pos, 1)); print "@array\n"; # Prints 'foo baz bar' $$ref_to_element = 'zap'; print "@array\n"; # Still prints 'foo baz bar'