Beefy Boxes and Bandwidth Generously Provided by pair Networks
Just another Perl shrine

Storable's freeze/thaw vs store/retrieve

by Dlamini (Novice)
on Oct 11, 2012 at 20:57 UTC ( #998547=perlquestion: print w/replies, xml ) Need Help??
Dlamini has asked for the wisdom of the Perl Monks concerning the following question:

Hi Monks,

I'm confused as to what the difference is between using freeze/thaw vs using store/retrieve in the Storable module. Why might you use one over the other? Finally, are either of these useful for writing incrementally? I have a loop that will probably take a few days to complete and would like to be able to write chunks so that if I stop the loop partway, I can avoid re-doing the portion that is already complete. I'm sure a DB would work here as well, but for other reasons, I'd like to avoid creating one if possible.

Thanks in advance

  • Comment on Storable's freeze/thaw vs store/retrieve

Replies are listed 'Best First'.
Re: Storable's freeze/thaw vs store/retrieve
by BrowserUk (Pope) on Oct 11, 2012 at 21:22 UTC
    1. difference is between using freeze/thaw vs using store/retrieve in the Storable module.

      freeze/thaw write-to & read-from scalars. Ie, in memory. store/retrieve write-to & read-from files.

      Obviously, in order for the frozen data to persist beyond the program run, you would need to write it to persistant storage anyway.

    2. are either of these useful for writing incrementally?

      That kind of depends on the nature of the data you are storing; and/or how you choose to use them.

      You could store your data to a file periodically, each time writing everything you have so far and overwriting the same file each time.

      Or, if the data you wish to save becomes complete in discrete chunks, then you could save each chunk to disk as it becomes complete. But you would need to write each chunk to a separate file as storable disk files are written and read as complete entities;

      It is possible to use freeze/thaw to write multiple storable chunks to a single file and then thaw them back, but it requires you to do the file handling yourself, including adding extra code to delimit the individual chunks.

    More information about the nature and quantity of the data might yield better answers.

    With the rise and rise of 'Social' network sites: 'Computers are making people easier to use everyday'
    Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
    "Science is about questioning the status quo. Questioning authority".
    In the absence of evidence, opinion is indistinguishable from prejudice.

    RIP Neil Armstrong

      Thanks! That's exactly what I was looking for. I didn't understand the implication that writing to a scalar just meant writing it to memory that gets lost at the end of the program.

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: perlquestion [id://998547]
Approved by Perlbotics
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others studying the Monastery: (1)
As of 2018-07-22 22:49 GMT
Find Nodes?
    Voting Booth?
    It has been suggested to rename Perl 6 in order to boost its marketing potential. Which name would you prefer?

    Results (457 votes). Check out past polls.