[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Omaha.pm] My first hash slice
On Oct 1, 2008, at 2:34 PM, <jay@jays.net> wrote:
while (my $href = $sth->fetchrow_hashref) {
foreach my $key (keys %$href) {
$href->{$key} =~ s/\s+$//;
}
$DB::single = 1;
my $key = join "|", @$href{ qw(rate_cat room_code
hrms_room_cat stod etod) };
print "$key\n";
unless ($self->_Band2s->{$key}) {
my $b2 = Omni2::Control::OmniCRS::HRMS::Band2->new($href);
$self->_Band2s->{$key} = $b2;
}
}
On Oct 1, 2008, at 2:48 PM, Andy Lester wrote:
Now, note that you have a $key in the foreach loop, AND you're
overriding it inside the loop, too. That's confusing.
Ya. That first $key is throwaway. Only used for 1 line of code.
I'm thinking changing the second $key to some other variable name
would lead a reader to believe that I still care about the first
$key, which I don't.
Would this be better or worse?
map { $href->{$_} =~ s/\s+$// } keys %$href;
Worse, I suspect. Or
for (values %$href) { s/\s+$// }
Looks like those both work. I'm thinking the last one is best.
Also, how about instead of
print "$key\n";
you use
say $key;
That's a 5.10 feature, yes? We're not a 5.10 shop yet.
Thanks,
j