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


in reply to Deleting old files from directory

Does that even work? "perldoc -f -X" gives the example:

while (<>) { chomp; next unless -f $_; # ignore specials #... }

From which I gather the filetests don't take a default "$_". But once you've tested "-f $_", you can re-use the data structure from that query for the -M test by specifying a single underscore: "-M _". Personally I would do it as in the example, with a while, rather than loading all the filenames ... potentially a large number. I would also use a variable rather than "$_", because when you nest loops or call routines, the value of $_ might be altered.

As Occam said: Entia non sunt multiplicanda praeter necessitatem.

Replies are listed 'Best First'.
Re^2: Deleting old files from directory
by jwkrahn (Abbot) on Sep 27, 2011 at 20:13 UTC
    From which I gather the filetests don't take a default "$_".

    Well if you read "perldoc -f -X" you'll see it says:

        -X FILEHANDLE
        -X EXPR
        -X DIRHANDLE
        -X      A file test, where X is one of the letters listed below.  This unary
                operator takes one argument, either a filename, a filehandle, or a
                dirhandle, and tests the associated file to see if something is true
                about it.  If the argument is omitted, tests $_, except for "-t", which
                tests STDIN.  Unless otherwise documented, it returns 1 for true
                and '' for false, or the undefined value if the file doesn't exist.  Despite
                the funny names, precedence is the same as any other named unary operator.
    

Re^2: Deleting old files from directory
by Anonymous Monk on Sep 27, 2011 at 19:52 UTC
    Um, grep always works with $_, and OP already has named variable $delfiles