X-Git-Url: http://dxcluster.net/gitweb/gitweb.cgi?a=blobdiff_plain;f=perl%2FFilter.pm;h=00ee6adb15a0ef8be4f7ca43110e201aafb7d2e2;hb=c912e948dc2207f446c7c8930ab179b4bc3b98d7;hp=5947b856f15cff628b458091ae440e81dcb99062;hpb=704d88d7e4a8ff06024b35fc27eb94732b0a8d9f;p=spider.git diff --git a/perl/Filter.pm b/perl/Filter.pm index 5947b856..00ee6adb 100644 --- a/perl/Filter.pm +++ b/perl/Filter.pm @@ -219,10 +219,13 @@ sub write { my $self = shift; my $sort = $self->{sort}; - my $fn = $self->{name}; + my $name = $self->{name}; my $dir = "$filterbasefn/$sort"; + my $fn = "$dir/$name"; + mkdir $dir, 0775 unless -e $dir; - my $fh = new IO::File ">$dir/$fn" or return "$dir/$fn $!"; + rename $fn, "$fn.o" if -e $fn; + $fh = new IO::File ">$fn"; if ($fh) { my $dd = new Data::Dumper([ $self ]); $dd->Indent(1); @@ -230,6 +233,9 @@ sub write $dd->Quotekeys($] < 5.005 ? 1 : 0); $fh->print($dd->Dumpxs); $fh->close; + } else { + rename "$fn.o", $fn if -e "$fn.o"; + return "$fn $!"; } return undef; }