use 5.14.2; use warnings; our $VERSION = "1.01 - 20180217"; my $cmd = $0 =~ s{.*/}{}r; sub usage { my $err = shift and select STDERR; print "usage: $cmd [ --rmdir ] [ dir ... ]\n"; exit $err; } # usage use Getopt::Long qw(:config bundling nopermute); GetOptions ( "help|?" => sub { usage (0) }, "V|version" => sub { say "$cmd [$VERSION]"; exit 0; }, "d|delete|rm|rmdir" => \my $opt_d, ) or usage (1); use File::Find; no warnings "File::Find"; my @dir = @ARGV ? @ARGV : ("."); grep { ! -d $_ } @dir and usage (1); finddepth (sub { ! -d $_ || m/^\.\.?$/ and return; my ($dh, @d); unless (opendir $dh, $_ and @d = readdir $dh) { warn "Cannot read $File::Find::name\n"; return; } closedir $dh; if (@d == 2) { print "$File::Find::name\n"; $opt_d and rmdir $_; } }, @dir);