Beefy Boxes and Bandwidth Generously Provided by pair Networks
Syntactic Confectionery Delight

Re: truncate a file from top

by periapt (Hermit)
on Nov 02, 2004 at 13:15 UTC ( #404583=note: print w/replies, xml ) Need Help??

in reply to truncate a file from top

I assume that you want to preserve the older entries and just overwrite existing ones. The relevent question in this case is whether each line or log block is of fixed size.

For example, if you structure your log messages to be, say, 384 bytes or less (any size will do), then open your log in r/w mode. If the file is of the correct size, position the pointer at the beginning of the file and begin writing your standard blocks. If the file is not yet of the correct size, position the file pointer at the end of the file and keep adding.

The only thing you need is a MAXSZ, CURRSZ and BLOCKSZ variable to track location.

I'm sure there are other ways but this was the first one that came to mind.

use strict; use warnings; use diagnostics;

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://404583]
[Corion]: Hmmm. I feel a Meditation coming on. I wrote a module, DBIx::PivotQuery, which returns a table-like set of rows (AoA) but some columns are generated from column values, like in an (Excel) pivot table or a ROLLUP command
[Corion]: My current approach for subtotals involves rerunning the given query, with the hint to the user that they should use a temporary table if they want better performance.
[Corion]: But I could create that temporary table in the module and use it for the improved perfomance directly instead.
[Corion]: And the question is, what would be better/preferred ;-)
[Corion]: Hmm - not exactly like the ROLLUP command. Ah well.

How do I use this? | Other CB clients
Other Users?
Others chilling in the Monastery: (10)
As of 2017-02-23 15:24 GMT
Find Nodes?
    Voting Booth?
    Before electricity was invented, what was the Electric Eel called?

    Results (347 votes). Check out past polls.