Super Search has failed me. Is there a way to declare a hash and slice-initialize it in one statement, under use strict? I'm guessing it's going to be nasty-looking code if it's even possible, so whether I use it is debatable, but it's one of those "It might be possible, I just can't think how!" kinds of things I've always been curious about.
use strict; my @keys = (1..3); my @values = (4..6); my %hash; @hash{@keys} = @values; # works, but two statements # my %hash{@keys} = @values; I wished this worked, but syntax error # my @hash{@keys} = @values; Also syntax error # my $hash{@keys} = @values; Clearly wrong, and dumb (and syntax erro +r) my %hash = map {$keys[$_] => $values[$_]} (0..$#keys); # Far too long- +winded no strict; @hash{@keys} = @values; # works, but ew
In reply to Declare and slice-initialize hash in one statement? by chester
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |