in reply to Cache::Cache questions

1) Can I use this module in order to store my hash between sessions

It might mostly work, but it's not at all advisable. Caches are there to speed up lookups that would otherwise take longer, but they are not intended to keep always all information. (It's not the primary goal to avoid data loss, as opposed to "real" storage solutions).

for sessions there's CGI::Session or Storable, depending on the abstraction level you want.

In the CPAN tutorial I found an example of usage. What are $name and $customer there.

$customer is a data structure to be cached, and $name is a name uniquely identifying that structure.

3) Can somebody who has a similar task give me an example of working usage.

Most CPAN modules come with test files which are also working examples. You can find them by clicking on the MANIFEST link on the distribution overview page, for Cache::Cache it's here.

Replies are listed 'Best First'.
Re^2: Cache::Cache questions
by vit (Friar) on Jun 30, 2009 at 17:20 UTC
    /*
    for sessions there's CGI::Session or Storable, depending on the abstraction level you want.
    */
    I do use Starable but simply for storring compactly the hash in the file.
    Do you mean I can use use Storable to store my hash in memory between sessions? Give me please just a hint how.
    What do you mean by "abstraction level you want".
      Do you mean I can use use Storable to store my hash in memory between sessions?

      No, but in a file.

      What do you mean by "abstraction level you want".

      Storable's interface is roughly "store $this data structure in $that file", or the other way round. That means it's rather low-level. For example if you have two processes, you have to take care yourself that they don't simultaneously write to the file, and completely mess it up in the process.

      CGI::Session is much more high-level; it's interface is more like "given $this HTTP header, give me an object that I stored previously in the same session". That means it takes care of storage location, locking and so on for you.

      What you need really depends on what you want to achieve in the end, and you haven't told us that.

        /* .... you haven't told us that */
        I have a hash which I retrieve from the file using Storable every time I start my perl program or process the request on the server using CGI.
        The time required for computations is much smaller than reading from the file. I want to be able to do it once and get this hash from the memory every subsequent session.
        The question is quite clear i think, I/O reading is taking a lot of time because loading 1g from the file on every request seems kinda counter intutive. So the question is , is there a way that we can keep the storable object in memory and keep serving the http request/ query on that object?? requests can come from different browsers, different sessions. But since storable is in memory and not on disk, obviously response time of server is fast. sorry for being so descriptive.