%hash = ();
foreach $_ (@array) {
$hash{getkey($_)} = $_;
}
####
my %res = map {
$_ => do {
my $re;
$re .= $translations{$_} for split //;
$re;
} if !$res{$_};
} @words;
####
my %res;
foreach my $word (@rw) {
$res{$word} ||= do {
my $re;
$re .= $translations{$_} for split //,$word;
$re;
}
}
####
Benchmark: running foreach, map_it for at least 5 CPU seconds...
foreach: 6 wallclock secs ( 5.34 usr + 0.00 sys = 5.34 CPU) @ 286.87/s (n=1531)
map_it: 5 wallclock secs ( 5.15 usr + 0.01 sys = 5.16 CPU) @ 134.77/s (n=695)
####
my @b = (7,5,5,6);
my @a;
@a = map { $_ > 5 ? $_ : $a[0] } @b;