use strict; use warnings; use File::Find; use File::Spec::Functions; use Text::Table; mkdir qq{case$_} for (1 .. 9); mkdir catdir(qq{case$_}, q{SORTED}) for (1 .. 9); mkdir catdir(qq{case$_}, q{CLEANED}) for (1 .. 5); mkdir catdir(qq{case$_}, q{PROCEED}) for (8 .. 9); my %HoH = (); my @AoA = (); find( { wanted => sub { return unless -d; return unless grep(/(SORTED|CLEANED|PROCEED)/, $_); $HoH{$File::Find::dir}->{$_}++; } }, '.' ); foreach my $key (sort {$a cmp $b} keys %HoH) { my @arr = (); for (qw(SORTED CLEANED PROCEED)) { exists($HoH{$key}->{$_}) ? push @arr, q[x] : push @arr, q[]; } push @AoA, [$key, @arr]; } my $tb = Text::Table->new(\'| ', "", \' | ', "CLEANED ", \'| ', "SORTED ", \' +| ', "PROCEED", \' |'); $tb->load(@AoA); my $rule = $tb->rule(qw/- +/); print $rule, $tb->title, $rule, $tb->body, $rule; __END__
$ perl -w 718972.pl +---------+---------+--------+---------+ | | CLEANED | SORTED | PROCEED | +---------+---------+--------+---------+ | ./case1 | x | x | | | ./case2 | x | x | | | ./case3 | x | x | | | ./case4 | x | x | | | ./case5 | x | x | | | ./case6 | x | | | | ./case7 | x | | | | ./case8 | x | | x | | ./case9 | x | | x | +---------+---------+--------+---------+
In reply to Re: printing the directories...
by andreas1234567
in thread printing the directories...
by sugar
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |