use 5.38.0; use Benchmark ':hireswallclock'; use Path::Tiny; use JSON qw/ to_json /; use DateTime; use Part1; use Part2; my @parts = ( { part => 1, sub => \&Part1::solution_1, expected => 56397 }, { part => 2, sub => \&Part2::solution_2, expected => 55701 }, ); my $input = path('./input')->slurp; for my $part (@parts) { my $res = Benchmark::countit( 10, sub { $part->{sub}->($input) == $part->{expected} or die; } ); my $result = { day => 1, year => 2023, #variant => '', language => 'perl', part => $part->{part}, time => $res->cpu_a / $res->iters, timestamp => DateTime->now->iso8601, }; say to_json $result; }