in reply to Re: deleting a list of files
in thread deleting a list of files

And technically, it really needs to be !/\A\.\.?\z/, otherwise you'll miss matching ".\n" and "..\n".

-- Randal L. Schwartz, Perl hacker

Replies are listed 'Best First'.
Re: Re: Re: deleting a list of files
by larryl (Monk) on Mar 25, 2001 at 20:01 UTC

    I'm curious: I've always just used /^\.\.$/, assuming that it would be sufficient. Are you recommending /\A\.\.\z/ as a defensive programming practice or are there specific situations you've run into where you needed to do this?

      I'm just saying that it won't correctly categorize either dot-newline or dot-dot-newline, and that's a potential security hole if someone understands that, or at least an annoyance if it doesn't.

      See.. .if I wanted to remove all the files in a directory so I could rmdir it, and I used that regex to skip over dot and dot-dot, I'd also be skipping over dot-newline and dot-dot-newline, and then my rmdir would be failing mysteriously. A potential security hole if the presence of that directory permits me access to something I shouldn't have.

      -- Randal L. Schwartz, Perl hacker

        Excellent, that was just what I was looking for! Yet another example where "Expect the Unexpected" is a good rule when you're dealing with anything outside your direct control (filesystem, file contents, user input, ...). Thanks!