in reply to strict and warnings but no error?

Hrm. If you want to have Perl restructure your hash, I'd do it in the following way:
sub make_ext_hash { my $mime = shift; my %ext = (); for my $name (keys %$mime) { my $desc = $mime->{$name}; $ext{$_} = { icon => $mime->{$name}{icon}, name => $name, } for @{ $desc->{ext} }; } return \%ext; }
That seems pretty straight-forward to me.

Update, as per the cb:

sub make_ext_hash { my $mime = shift; my %ext = (); for my $name (keys %$mime) { my %hr = ( icon => $mime->{$name}{icon}, name => $name, ); $ext{$_} = \%hr for @{ $mime->{$name}{ext} }; } return \%ext; }

_____________________________________________________
Jeff[japhy]Pinyan: Perl, regex, and perl hacker, who'd like a job (NYC-area)
s++=END;++y(;-P)}y js++=;shajsj<++y(p-q)}?print:??;