Meta
view release on metacpan or search on metacpan
Meta/Utils/File/Remove.pm view on Meta::CPAN
#!/bin/echo This is a perl module and should not be run
package Meta::Utils::File::Remove;
use strict qw(vars refs subs);
use File::Find qw();
use Meta::Utils::Output qw();
use Error qw(:try);
use Meta::Error::FileNotFound qw();
our($VERSION,@ISA);
$VERSION="0.30";
@ISA=qw();
#sub rm($);
#sub rmdir($);
#sub rmall($);
#sub rmrmdir($);
#sub rmrecursive($);
#sub rmhash($);
#sub rmlist($);
#sub rmmult($);
#sub TEST($);
#__DATA__
sub rm($) {
my($file)=@_;
if(!-f $file) {
throw Meta::Error::FileNotFound($file);
}
my($resu)=CORE::unlink($file);
if($resu!=1) {
throw Meta::Error::Simple("unable to remove [".$file."]");
}
}
sub rmdir($) {
my($directory)=@_;
if(!-d $directory) {
throw Meta::Error::FileNotFound($directory);
}
my($resu)=CORE::rmdir($directory);
if(!$resu) {
throw Meta::Error::Simple("unable to remove directory [".$directory."]");
}
}
sub rmall($) {
# my($unkn)=@_;
my($unkn)=$File::Find::name;
if(-f $unkn) {
&rm($unkn);
return;
}
if(-d $unkn) {
&rmdir($unkn);
return;
}
throw Meta::Error::FileNotFound($unkn);
}
sub rmrmdir($) {
my($file)=@_;
&rm($file);
my($dire)=dirname($file);
if(dir_empty($dire)) {
&rmdir($dire);
}
}
sub rmrecursive($) {
my($dir)=@_;
File::Find::find({wanted=>\&rmall,nochdir=>1,bydepth=>1},$dir);
}
sub rmhash($) {
my($hash)=@_;
my($resu)=1;
while(my($key,$val)=each(%$hash)) {
my($curr_resu)=&rm($key);
$resu=$resu && $curr_resu;
}
return($resu);
}
sub rmlist($) {
( run in 0.442 second using v1.01-cache-2.11-cpan-524268b4103 )