The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
use strict; use warnings;
my $t; use lib ($t = -e 't' ? 't' : 'test');
use Test::More tests => 10;
use IO::All;
use IO_All_Test;

# Print name and first line of all files in a directory
my $dir = io("$t/mydir");
ok($dir->is_dir);
my @results;
while (my $io = $dir->next) {
    if ($io->is_file) {
        push @results, $io->name . ' - ' . $io->getline;
    }
}

for my $line (sort @results) {
    my $dataline = <DATA>;
    $dataline =~ s/^t\//test\// if -e 'test';
    is($line, flip_slash $dataline);
}

# Print name of all files recursively
for (
    sort {$a->name cmp $b->name}
    grep {! /CVS|\.svn/} io("$t/mydir")->all_files(0)
) {
    my $dataline = <DATA>;
    $dataline =~ s/^t\//test\// if -e 'test';
    is("$_\n", flip_slash $dataline)
}

del_output_dir();

__END__
t/mydir/file1 - file1 is fun
t/mydir/file2 - file2 is woohoo
t/mydir/file3 - file3 is whee
t/mydir/dir1/dira/dirx/file1
t/mydir/dir1/file1
t/mydir/dir2/file1
t/mydir/file1
t/mydir/file2
t/mydir/file3