追記 http://d.hatena.ne.jp/a666666/20090406/1238986138#c1238990265 でご指摘いただいたように、 yaml フィルターを使って - ~ で undef を表現してやれば良いそうです。 #!/usr/bin/perl use strict; use warnings; use Test::Base; plan tests => 1 * blocks; sub match { my $input = shift; my $re = qr/^(\w+)\s(\w+)\s(\w+)\s?(\w+)?$/; my @matched = $input =~ $re; return \@matched; } filters { expected => [qw(lines chomp array)], }; run_is_deeply input