Test::Base利用時に、__DATA__の中身の量が多い場合、ファイル分割してわかりやすくする

t/hoge.t

use Test::Base qw/no_plan/;

my $DIR = 't/data';
spec_string( &load_data() );

run {
    my $block = shift;
    # 貴方のテストをここへ。テスト名を入れるのを忘れずにね。
    is( $block->before , $block->after , $block->name );
};

sub load_data {

    opendir(DIR, $DIR) or die $@;
    my @list = readdir(DIR);
    closedir(DIR);

    my $data = '';
    for my $file ( @list ) {
        next unless $file =~ /\.dat$/;
        my $dat = $DIR .'/'. $file;
        my $name = "\e[33m" . $dat . "\e[0m";
        open(FH , $dat );
        while(<FH>){
            $_ =~ s/^=== /=== [$name] /;
            $data .= $_;
        }
        close(FH);
    }
    return $data;
}

t/data/foo.dat

=== フーです
--- before
foo
--- after
error

t/data/hoge.dat

=== ほげです
--- before
hoge
--- after
error

prove t/hoge.t