#!/usr/bin/perl -- ## ## ## perltidy -olq -csc -csci=3 -cscl="sub : BEGIN END " -otr -opr -ce +-nibc -i=4 -pt=0 "-nsak=*" ## perltidy -olq -csc -csci=10 -cscl="sub : BEGIN END if " -otr -opr +-ce -nibc -i=4 -pt=0 "-nsak=*" #!/usr/bin/perl -- use strict; use warnings; use Path::Tiny qw/ tempdir path /; Main( @ARGV ); exit( 0 ); sub Main { my $dad = tempdir; MakeKids( $dad ); for my $kid ( NotKids( $dad, 2, 2, 2 ) ) { ListAll( $dad ); path( $kid )->remove_tree; } ListAll( $dad ); $dad->remove_tree; ## cleanup tempdir } ## end sub Main sub NotKids { my $dad = shift; my %notKid = map { $_ => !!1 } @_; my @nots; for my $kid ( $dad->children ) { if( not exists $notKid{ $kid->basename } ) { push @nots, $kid; } } return @nots; } ## end sub NotKids sub ListAll { my( $dad ) = @_; my $iter = path( $dad )->iterator( { recurse => 1, } ); while( my $kid = $iter->() ) { print "$kid\n"; } print "\n"; } ## end sub ListAll sub MakeKids { my( $dad ) = @_; for my $ix ( 1 .. 3 ) { for my $iy ( 1 .. 3 ) { my $kid = path( $dad, $ix, $iy ); $kid->touchpath->spew( "$kid" ); } } } ## end sub MakeKids
In reply to Re: Removing all directories recursively except one
by Anonymous Monk
in thread Removing all directories recursively except one
by javedakbar
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |