use strict;
use warnings;
use Benchmark qw( cmpthese );
my %modules = map {
eval "require $_" if $_ ne 'Internal';
$@ ? () : ( $_ => make_sub($_) )
} qw( File::LibMagic File::MMagic File::Type Internal );
my $filename = 'data.sample';
open my $fh, '>', $filename;
print $fh 'Some sample ASCII data for mime detecting';
close $fh;
cmpthese( 9_000, \%modules );
sub make_sub {
( my $module = shift ) =~ s/:://g;
$module = "SVK::MimeDetect::$module";
eval "require $module";
die "Couldn't load $module\n" if $@;
my $object = $module->new();
return sub { $object->checktype_filename($filename) };
}