There's an error in this block: + if ($filename =~ tr/././ > 1) { + fail("more than one dot: $filename") unless $filename =~ m/(tar|tgz|gz)/; + return; + } You shouldn't return without failing. Try this: if ($filename =~ tr/././ > 1 and $filename !~ /\.(tar|tgz|gz)\z/) { fail("more than one dot: $filename"); return; } RonaldThread Previous | Thread Next