Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl Monk, Perl Meditation

Re: FIFO logfile done with flat file?

by clintp (Curate)
on Jul 28, 2002 at 20:22 UTC ( #185844=note: print w/replies, xml ) Need Help??

in reply to FIFO logfile done with flat file?

You could do it with a flat file. There's lots of ways. One script I had used a simple DBM file and went something like this (hope this is cut down right):
{ use Fcntl qw(:flock); my %h; my $size=5; sub ringopen { open(F, ">ring.lock") || die; flock(F, LOCK_EX); dbmopen(%h, "ring", 0666) || die; } sub ringclose { dbmclose(%h); close(F); } sub ringadd { ringopen(); local $_=$h{next}; delete $h{$_-$size} if (defined $_); $h{$h{next}++}=$_[0]; ringclose(); } sub ringdump { ringopen(); my @a=sort { $a <=> $b } grep /^\d+$/, keys %h; @a=@h{@a}; ringclose(); return @a; } }
And you used it like this:
for(0..9, 'a'..'z') { ringadd($_); } print ringdump();
To initialize the ring buffer, remove the ring* files.


Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://185844]
[Eily]: Astérix
1nickt gives up on finding a Perl YAML parser that supports hash merging. In 2017.
[LanX]: Oh yes true, he lost his accent! xD
[Eily]: and since his name is a modified version of astérisque (asterisk), which is a typographical symbol, I think it's even funnier that he would lose a diacritic
[Eily]: the pun doesn't work so well with "he lost a diacritic" though :P
[LanX]: Obelix might offer to find it again ...
[LanX]: not much to translate anyway since Goscinny died
[Eily]: https://en. wiki/List_of_Aster ix_characters some of the names were changed to include a new pun
[LanX]: sure some are even funnier now
[LanX]: some lost because they were not translated like Epidemais

How do I use this? | Other CB clients
Other Users?
Others taking refuge in the Monastery: (14)
As of 2017-05-24 15:00 GMT
Find Nodes?
    Voting Booth?