#!/usr/bin/perl use strict; use warnings; use Benchmark qw/cmpthese/; my $lng = shift(@ARGV) || die "Usage: $0 length [-count]\n"; my $cnt = shift(@ARGV) || "-10"; cmpthese ($cnt, { 'Version 1' => sub { push_map($lng) }, 'Version 2' => sub { cnt_fast1($lng) }, 'Version 3' => sub { push_for($lng) } } ); sub push_map { my $l=shift(@_); my @arr; map{ push(@arr,"TEST") }(0..$l); } sub cnt_fast1 { my $l=shift(@_); my @arr=("Test")x$l; } sub push_for { my $l=shift(@_); my @arr; push(@arr,"TEST") for(0..$l); }