Chris Nehren on 16 Nov 2011 10:12:06 -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:58, Mark Gardner wrote:

> 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.

Eek, sorry I misunderstood. I'll concur with Mark's suggestion of File::ShareDir or File::HomeDir--though as you're on Windows these options may not put things where you otherwise expect.

Thanks and best regards,
Chris Nehren
Philadelphia-pm mailing list