Beefy Boxes and Bandwidth Generously Provided by pair Networks
more useful options
 
PerlMonks  

Re: Re: Re: Re: Re: Re: DB_File, not saving

by jsprat (Curate)
on Jul 18, 2003 at 00:36 UTC ( #275461=note: print w/ replies, xml ) Need Help??


in reply to Re: Re: Re: Re: Re: DB_File, not saving
in thread DB_File, not saving

I must be able to tie %chat to both objects otherwise it's useless

Pretty strong words, partner ;-) I think what you mean is that to pull this off you must be able to represent the data in a sorted manner.

First off, sauoq was right on about IxHash.

Second, diotalevi says to use $DB_BTREE. An excellent suggestion, as long as you use a sensible key - maybe date/time stamp - and be aware of the possibility of duplicates. It will always be sorted - it's stored in a balanced tree. The key your script uses is $cnt, but I don't see it being initialized anywhere (probably not a sensible key ;). Every message is stuffed into the same slot, overwriting the previous message.

The most straightforward short-term solution for you IMO would be to use $DB_RECNO like so:

# tie your array to the file tie @chat, 'DB_File', 'chat', O_CREAT | O_RDWR, 0644, $DB_RECNO; # push the message info onto the array push @chat, "Message number $_" for (1 ..20); # print the last five messages print join "\n", @chat[-5 .. -1]; __END__ output: Message number 16 Message number 17 Message number 18 Message number 19 Message number 20

You'll be able to treat @chat like an ordinary array. As a bonus, you'll be able to view or modify the chat db file with any text editor.


Comment on Re: Re: Re: Re: Re: Re: DB_File, not saving
Download Code

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others making s'mores by the fire in the courtyard of the Monastery: (11)
As of 2015-07-08 07:53 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (96 votes), past polls