The Perl and Raku Conference 2025: Greenville, South Carolina - June 27-29 Learn more

#!/usr/bin/perl
# 03-list.t
# Copyright (c) 2006 Jonathan Rockway <jrockway@cpan.org>
use strict;
use Test::More tests=>16;
my @files = qw(foo bar baz);
my @dirs = qw(1 2 3);
my $t = Directory::Scratch->new;
my @list;
foreach my $dir (@dirs){
my $tmp = $t->mkdir($dir);
ok($tmp, "mkdir $dir");
push @list, $dir;
foreach my $file (@files){
my $name = file($dir, $file);
$tmp = $t->touch($name);
ok($tmp, "touch $tmp");
push @list, $name;
}
}
# do it
my @result = $t->ls;
@list = sort @list;
@result = sort @result;
is_deeply(\@result, \@list, "listed everything");
@result = $t->ls;
@result = sort @result;
is_deeply(\@result, \@list, "listed everything (with /)");
@result = sort $t->ls('1');
my @possible = map {file('1', $_)} qw(bar baz foo);
is_deeply(\@result, \@possible, 'listed 1');
$t->touch('fooo');
is_deeply([$t->ls('fooo')], ['fooo'], "listing a single file is OK");