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

use strict;
use Benchmark qw(:all);

{
	package UseMD;
	use Method::Destructor;

	sub new{ bless {}, shift }

	sub DEMOLISH{
		my $i = 0;
		$i++;
	}

	package UseMD_optional;
	use Method::Destructor -optional;

	sub new{ bless {}, shift }

	sub DEMOLISH{
		my $i = 0;
		$i++;
	}
}
{
	package Normal;

	sub new{ bless {}, shift }

	sub DESTROY{
		my $i = 0;
		$i++;
	}
}

cmpthese -1 => {
	demolish => sub{
		for(1 .. 100){
			UseMD->new();
		}
	},
	'demolish/o' => sub{
		for(1 .. 100){
			UseMD_optional->new();
		}
	},
	destroy => sub{
		for(1 .. 100){
			Normal->new();
		}
	},
};