The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#!/usr/bin/perl

use warnings;
use strict;

use Test::More no_plan =>;

use File::Fu;

my $topdir = File::Fu->dir('tmp.' . $$);
END { $topdir->remove; }

$topdir->mkdir;
($topdir+$_)->touch for('a'..'z');
my $foo = $topdir->subdir("foo");
$foo->mkdir;
$foo->basename->symlink($topdir/'link');
($foo+$_)->touch for('a'..'z');

# bah!
my $x = do {
  my @files = $topdir->list;
  my ($i) = grep({$files[$_]->basename eq 'foo/'} 0..$#files);
  $_->unlink for(@files[($i+1)..$#files]);
  #warn join("|", $topdir->contents);
  $files[0]->basename;
};

my @files = $topdir->find(sub {
  #warn $_;
  $_->is_dir and return(shift->prune);
  $_->basename eq $x
});

is(scalar(@files), 1);

# vim:ts=2:sw=2:et:sta