use strict; my %allusers = ( 'users' => { 'user' => 'Test Account', '*Crudles' => 'Hello World', 'Crud' => 'Another Test', '*test' => 'Crud User' } ); foreach my $key ( %{ $allusers{ users } } ) { delete $allusers{ users }{ $key } if '*' eq substr $key, 0, 1; } # result: $ perl test.pl 0 [main] perl 374831 open_stackdumpfile: Dumping stack trace to PERL.EXE.Stackdump Segmentation fault (core dumped)