in reply to Re: Difference between this array assignment and push
in thread Difference between this array assignment and push

The following benchmark concurs with the idea that "Assign" is faster than "Push" for this example.

use Benchmark qw(:all) ; my $count = 1000; my $foobar = 'foobar' x 1000; timethese($count, { 'Assigned' => sub { my @assigned = $foobar =~ /(foo)/g;}, 'Pushed' => sub { my @pushed; push @pushed, $1 while $foobar =~ /( +foo)/g; }, });

Benchmark Results:

Benchmark: timing 1000 iterations of Assigned, Pushed... Assigned: 1 wallclock secs ( 0.80 usr + 0.00 sys = 0.80 CPU) @ 12 +50.00/s (n=1000) Pushed: 1 wallclock secs ( 0.93 usr + 0.00 sys = 0.93 CPU) @ 10 +75.27/s (n=1000)