in reply to Parsing bizarre non delimted data and hash slices

I don't know if it's any "better", but I'd probably solve your first problem something like this:
my @new_hashes = map { my %h; @h{@wanted} = @{$_}{@wanted}; \%h } @old_hashes;
--
<http://www.dave.org.uk>

"The first rule of Perl club is you do not talk about Perl club."
-- Chip Salzenberg