Beefy Boxes and Bandwidth Generously Provided by pair Networks
Just another Perl shrine

Re^2: No. files in folder

by gellyfish (Monsignor)
on Jun 23, 2005 at 10:33 UTC ( #469349=note: print w/replies, xml ) Need Help??

in reply to Re: No. files in folder
in thread No. files in folder

Well it's not quite fine, on some OS there is a chance that one could find oneself attempting to delete the current directory and it's parent ('.' and '..'). I would suggest something like:

opendir my $d, $dir; + my @f = sort { -M $b <=> -M $a } map { "$dir/$_" } grep !/^\.{1,2}$/,readdir $d; + unlink @f[-0,1] if @f > 20;
The only problem using the conditional like that on the unlink line is that it makes it more difficult to test whether the unlink succeeded - I would expand it to a full if block.


Replies are listed 'Best First'.
Re^3: No. files in folder
by blazar (Canon) on Jun 23, 2005 at 10:38 UTC
    Indeed, this is IMHO another good reason to use glob instead. I thought it is never supposed to return qw/. ../, or are there osen where it does?!? I mean glob '*' of course. One can trim it to {his,her} own needs anyway. And if really need be, than the cure would be (fundamentally) the same.

      No, glob can return . and .. and nothing in the documentation seems to promise otherwise (I searched glob, perlop, and File::Glob). However, glob("*") will not return any dot-files, including the directories, because it works similarly to shell wildcards. Here's an example of where it does, though:

      $ perl -le'$,=" ";print glob(".*")' . .. .bash_history .bash_profile # and so on

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://469349]
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others musing on the Monastery: (4)
As of 2021-04-15 11:51 GMT
Find Nodes?
    Voting Booth?

    No recent polls found