We don't bite newbies here... much | |
PerlMonks |
Re: Simulating UNIX's "tail" in core Perlby lzcd (Pilgrim) |
on Mar 08, 2001 at 07:54 UTC ( [id://62912]=note: print w/replies, xml ) | Need Help?? |
My personal pick (irrespective of language) for an 'inside' solution would be to create a FILO (First In Last Out) style of collection to the same size as the number of lines you wish to 'tail'. You then can go through the entire file, reading in a line to the collection and removing the oldest line from the collection. To paraphrase one example: Create an Array equal in size to number of 'tail elements' required Set WritePointer to the First Element Start Loop Read Line into Array at WritePointer Increment WritePointer If WritePointer>Number of Array Elements then Set WritePointer to First Array Element End Loop if end of File At the end of this you'll have an array containing the required lines. All you've got to do is read the array elements back in the 'reverse direction' until you get back to the WritePointer element. If all of this seems like a load of old horse dribbblings to you, I'd suggest looking up the term FILO in your nearest Computer Science book. :)
In Section
Seekers of Perl Wisdom
|
|