The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#!perl

use strict;
use Benchmark qw(:all);

use PPI;

my $lexer = PPI::Lexer->new();

my $src;
my $these = {
	'PPI::D->new' => sub{
		my $d = PPI::Document->new(\$src);
	},

	'lex_tokanizer' => sub{
		my $tok = PPI::Tokenizer->new(\$src);
		my $d = $lexer->lex_tokenizer($tok);
	},
};

print "For tiny code\n";
$src = 'foo()';
cmpthese timethese 0 => $these;

print "\nFor large code\n";
$src = <<'SRC';
use strict;
sub sum{
	my $sum = 0;
	for my $value(@_){
		$sum += $value;
	}
	return $sum;
}

print sum(1, 2, 3, 4, 5), "\n";
SRC
cmpthese timethese 0 => $these;