in reply to Using stat() to get the total size of files in a folder
Module-free version. In brief:
Unnecessarily cryptic, sorry. (-f $filename) checks whether something is a plain file, as opposed to a socket, directory, link, or some other weird beast. The above is in a for loop, so $_ is each filename coming out of <*>. (-s $filename) gives the size. Except that we've already called stat() on the file, so we don't want to take the time to do it again, which is what the magic underscore filehandle is good for.perl -le '$size += (-f $_ ? -s _ : 0) for (<*>); print $size'
Finally, <*> does a pattern match on the current directory. You may prefer to say glob("*").
Readable version:
my $size = 0; for my $filename (glob("*")) { next unless -f $filename; $size += -s _; }
|
---|
Replies are listed 'Best First'. | |
---|---|
Re^2: Using stat()
by Anonymous Monk on Nov 25, 2011 at 09:34 UTC | |
by Anonymous Monk on Nov 25, 2011 at 10:04 UTC | |
by pankaj_it09 (Scribe) on Nov 25, 2011 at 10:11 UTC | |
by Anonymous Monk on Nov 25, 2011 at 10:13 UTC | |
by pankaj_it09 (Scribe) on Nov 25, 2011 at 10:14 UTC | |
|
In Section
Seekers of Perl Wisdom