Mark Gardner on 16 Nov 2011 09:58:29 -0800

[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]

Re: [Philadelphia-pm] Persistent data directory

On Nov 16, 2011, at 12:38 PM, Chris Nehren <c.nehren/> wrote:

> On Nov 16, 2011, at 12:32, Kurt Starsinic wrote:
>> On Wed, Nov 16, 2011 at 12:26 PM, Eric Roode <> wrote:
>>> I'm writing a new module, and it needs to store some data persistently
>>> across invocations (basically a cache).  It is irrelevant whether this cache
>>> is per-user or system-wide.
>>> Is there any sort of reasonably standard place to store such data?  This
>>> will be run on Windows, for what it's worth, but it'd be good to know what
>>> locations are standard practice on other platforms, too.  Is there any sort
>>> of existing module that encapsulates this, so I won't have to think about it
>>> (like how File::Temp provides for temporary data storage)?  I couldn't find
>>> any.
>> One perlish way to do this would be to save the data, encoded with
>> Storable or Data::Dumper, to a file.
> Note that Storable (and to a lesser degree Data::Dumper) are serialization formats not readily readable by other tools/languages. Have you looked at the cache namespace on CPAN? Also consider CHI.

As for *where* to store things (the original question), one system-wide place is the distribution's share directory, enabled by modules like File::ShareDir and File::Share. Other options for portably finding places to write include File::HomeDir and File::ConfigDir.
Philadelphia-pm mailing list