#!/usr/bin/perl use strict; use Benchmark; no strict 'refs'; my $sub = 'test'; my $t0 = new Benchmark; my ($in, $out) = ($ARGV[1], $ARGV[2]); if($ARGV[0] eq 'eval') { foreach (0..$out) { eval { my $i; foreach (0..$in) { $i++ } } } } if($ARGV[0] eq 'evalstr') { foreach (0..$out) { eval 'my $i; foreach (0..$in) { $i++ }'; } } elsif($ARGV[0] eq 'sub') { foreach (0..$out) { &$sub; } } elsif($ARGV[0] eq 'inline') { foreach (0..$out) { my $i; foreach (0..$in) { $i++ } } } my $t1 = new Benchmark; print "Method '$ARGV[0]' took:",timestr(timediff($t1, $t0)),"\n"; sub test { my $i; foreach (0..$in) { $i++ } }