Beefy Boxes and Bandwidth Generously Provided by pair Networks
We don't bite newbies here... much
 
PerlMonks  

Re: Simulating UNIX's "tail" in core Perl

by lzcd (Pilgrim)
on Mar 08, 2001 at 07:54 UTC ( [id://62912]=note: print w/replies, xml ) Need Help??


in reply to Simulating UNIX's "tail" in core Perl

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. :)
  • Comment on Re: Simulating UNIX's "tail" in core Perl

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others scrutinizing the Monastery: (3)
As of 2024-04-24 02:43 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found