in reply to Speed comparison of foreach vs grep + map
$ perl -le' use warnings; use strict; my @c = 1 .. 10_000_000; print @c . " @c[0..19]"; my @d; for my $dd ( @c ) { push @d, $dd % 2; } print @d . " @d[0..19]"; my @e; for my $ee ( @d ) { if ( !$ee ) { push @e, $ee; } } print @e . " @e[0..19]"; ' 10000000 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 10000000 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 50000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
$ perl -le' use warnings; use strict; my @c = 1 .. 10_000_000; print @c . " @c[0..19]"; my @d = map $_%2, @c; print @d . " @d[0..19]"; my @e = grep /0/, @d; print @e . " @e[0..19]"; ' 10000000 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 10000000 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 5000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
The quickest way to do what you want:
$ perl -le' my @c = 1 .. 10_000_000; print @c . " @c[0..19]"; my @e = ( 0 ) x ( @c / 2 ); print @e . " @e[0..19]"; ' 10000000 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 5000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
---|
Replies are listed 'Best First'. | |
---|---|
Re^2: Speed comparison of foreach vs grep + map
by ikegami (Patriarch) on May 26, 2025 at 12:18 UTC |