my $data = file( shift() )->slurp; ### At dev-time, when this processor is known to be working my $tst1 = MyApp::Processor->process( $data ); YAML::DumpFile( $file, $data, $test1 ); ### Then, sometime later in a test script... my @files = ; plan tests => scalar @files; for my $file ( @tests ) { my ( $data, $test1 ) = YAML::LoadFile( $file ); my $test2 = MyApp::Processor->process( $data ); eq_or_diff( $test1, $test2, "$file not broken yet!" ); }