use Data::Dumper; my @a = qw/a b c d e/; my %a; @a{@a} = (1) x @a; print "--- \@a before ---\n", Dumper \@a; print "--- \%a before ---\n", Dumper \%a; undef @a{@a}; undef @a[1,2,3]; print "--- \@a after ---\n", Dumper \@a; print "--- \%a after ---\n", Dumper \%a; #### --- @a before --- $VAR1 = [ 'a', 'b', 'c', 'd', 'e' ]; --- %a before --- $VAR1 = { 'e' => 1, 'c' => 1, 'a' => 1, 'b' => 1, 'd' => 1 }; --- @a after --- $VAR1 = [ 'a', 'b', 'c', undef, 'e' ]; --- %a after --- $VAR1 = { 'e' => undef, 'c' => 1, 'a' => 1, 'b' => 1, 'd' => 1 };