http://www.perlmonks.org?node_id=1000358


in reply to Can't remove directory-Permission denied

I'm pretty sure you never want to delete your working directory; and I'm pretty sure that's what the warning says you are trying to do. I would suggest including a line in your unwanted routine that says something like return unless /[^.]/;.

#11929 First ask yourself `How would I do this without a computer?' Then have the computer do it the same way.

Replies are listed 'Best First'.
Re^2: Can't remove directory-Permission denied (knot)
by tye (Sage) on Oct 22, 2012 at 15:02 UTC
    return unless /[^.]/;

    I'm not unsure that it isn't impossible to avoid not including more negations without having to avoid a lack of not trying.

    return if /^\.{1,2}\z/;

    The 'return' still represents one implied negation ("don't do the following"). Each additional negation adds the chance for mentally dropping the negation and introducing a bug or wasting too much time getting very confused.

    It also doesn't skip directories named "...". :) And, of course, that code is assuming a Unix or Windows file system.

    - tye        

      I'm not unsure that it isn't impossible to avoid not including more negations without having to avoid a lack of not trying.

      Clarity itself to a logician, certainly, but — on the offchance that some following along at home might need a little help — let Perl elucidate:

      #! perl use strict; use warnings; my $str1 = "I'm not unsure that it isn't impossible to " . "avoid not including more negations without " . "having to avoid a lack of not trying."; my $str2 = $str1; my %negs = ("not un" => "", "it isn't im" => "it's ", "avoid not including" => "include", "without having to avoid" => "by", "a lack of not" => ""); # Collapse double negatives while (my ($key, $value) = each %negs) { $str2 =~ s/$key/$value/g; } # Remove extra spaces $str2 =~ s/\s+/ /g; # Display the translation print "$str1\n\n-->\n\n$str2\n";

      (Is there anything Perl can’t do?)

      Athanasius <°(((><contra mundum

      To match '.' don't you need to use '\.' or [.] ?

        Indeed. I had [.] then changed it to \.. I suspect the \ accidentally got dropped when I further updated the regex. Sorry about that. Fixed now. Thanks.

        - tye