in reply to Re^2: limit output filesize
in thread limit output filesize

Urm... the filehandle for stat, actually for -s, works for me.
open OUT, ">test.txt"; for (1 .. 1000) { print OUT "Hello, Perlmonks!\n" x 10; print -s OUT; }
It works, but -s is indeed set according to the buffer size, and not according to the already printed output:
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
4096
4096
4096
4096
4096
4096
4096
4096
...

With $| set to a true value it'll work less coarse, but most likely quite a bit slower:

open OUT, ">test.txt"; my $fh = select OUT; $| = 1; select $fh; for (1 .. 1000) { print OUT "Hello, Perlmonks!\n" x 10; print -s OUT; }
192
384
576
768
960
1152
1344
1536
1728
1920
2112
2304
...
I think the coarse version is still fine enough.

Replies are listed 'Best First'.
Re^4: limit output filesize
by rogue90 (Novice) on Jul 08, 2005 at 19:45 UTC
    The coarse version is indeed fine enough. I can limit how frequently I stat which should speed things up a bit. Thanks for your help.
Re^4: limit output filesize
by rogue90 (Novice) on Jul 08, 2005 at 19:37 UTC
    I was just about to say that - if I don't have 1024 chars per line and have say 100 instead it doesn't work the same.