sub foo {
join ' ',
( $_[0] < .5 ? 'a' : 'b' ),
( $_[1] < .5 ? 'c' : 'd' ),
( $_[2] < .5 ? 'e' : 'f' ),
}
####
use Runops::Trace 'checksum_code_path';
for ( 1 .. 1000 ) {
my @args = ( rand(), rand(), rand() );
$md5 = checksum_code_path( sub { $results = foo( @args ) } );
next if $seen{ $md5 } ++;
push @great, \ @args;
}
__END__
0.16 0.53 0.84 -> b c e
0.03 0.29 0.43 -> b d f
0.30 0.45 0.74 -> b d e
0.58 0.25 0.91 -> a d e
0.60 0.02 0.11 -> a d f
0.47 0.52 0.33 -> b c f
0.51 0.53 0.63 -> a c e
0.59 0.53 0.05 -> a c f
##
##
MD5 checksum for codepath : count
3486706209c7e59208c012e9fb50a4a8: 65
44a40eaf7295843c7b98c513acbd30cd: 39
49f80e6c0a251c6097828935336b8369: 5
117dd819263a4a0b05ee740190369556: 71
bacb29e1bf8fd4f00d89a1aa1759b18b: 392
ee75b4954053f18a33f00589f2dff817: 28
8a17266d3f92737fe3154c2ee3acd0b0: 7
775a10dbb2d9ce52259680e901999d66: 393
##
##
sub codelength {
my $count = 0;
Runops::Trace::trace_function(
sub { ++ $count },
$_[0],
);
return $count;
}