>>>>> "PP" == Philip Potter <philip.g.pot...@gmail.com> writes:
PP> 2009/11/11 Uri Guttman <u...@stemsystems.com>: >> you can also simplify the copy a little with a hash ref: >> >> my $readfsgs_flags = { map { $_ => $flags->{$_} } @flags_to_copy } ; PP> Is this really simpler than my version? PP> @readfsgs_fla...@flags_to_copy} = @{$flag...@flags_to_copy}; one less line to declare the hash as mine is a hash ref. fewer lines is generally simpler (not alway!). also more people get map than slices (i use them both all the time). PP> It took me a while to parse the map call, and the extra curlies from PP> the anonymous hash get confused with the code block curlies. Is this PP> map call a common technique for constructing subhashes (analogous to PP> subsets)? sure. maps can generate any list from an input list. what is different about a list of key/values to populate a hash? if you don't like the hash ref style, assign the map to a hash itself: my %readfsgs_flags = map { $_ => $flags->{$_} } @flags_to_copy ; i just like the ref style as i don't need to use \%readfsgs_flags to pass it down the line. PP> Also, is the hash ref necessary? Would this also work? PP> my %readfsgs_flags = map { $_ => $flags->{$_} } @flags_to_copy; >> and if you feel like really combining lines (not so great in this case): >> >> my $readfsgs_flags = { map { $_ => $flags->{$_} } >> grep { exists( $flags->{$_} } qw(limit) ; >> >> >> or another cleaner way would be to put the exists inside the map: >> >> my $readfsgs_flags = { >> map { ( exists( $flags->{$_} ) ? $_ => $flags->{$_} : () } qw(limit) ; PP> I see what you've done there. I think you're right that it's probably PP> best in two statements -- after all, it's going to be two lines PP> whether it's two statements or one. sure. i was just showing how to combine lines like that. sometimes there is a decent win, other times it gets too noisy. uri -- Uri Guttman ------ u...@stemsystems.com -------- http://www.sysarch.com -- ----- Perl Code Review , Architecture, Development, Training, Support ------ --------- Gourmet Hot Cocoa Mix ---- http://bestfriendscocoa.com --------- -- To unsubscribe, e-mail: beginners-unsubscr...@perl.org For additional commands, e-mail: beginners-h...@perl.org http://learn.perl.org/