The second feels the cleaner approach to me as well, but it is not correctly implemented. So I suppose one could argue it is too clever. Alternatively, one could fix it:
sub ripper2b { ## Second implementation, take b
my $file = $_;
return unless s/\.(?!$ext)\w+$//i;
my $priority = "$_.$ext";
if (-e $priority && !-d $priority) {
$nom += unlink $file;
}
}
My two fixes:
- (?!$ext) is zero-width, so (?!$ext)$ is just $. We need to remove the extension as well, whatever it is, so add \w+ to the regex.
- The "." was removed by the substitution, so we need to add it again along with $ext.
If that does not make sense to you, the second implementation is just too clever. Go with the first.
print "Just another Perl ${\(trickster and hacker)},"
The Sidhekin proves Sidhe did it!