Locale::Maketext external cache support
authorTodd Rinaldo <toddr@cpanel.net>
Tue, 6 Jul 2010 05:28:00 +0000 (01:28 -0400)
committerDavid Golden <dagolden@cpan.org>
Tue, 6 Jul 2010 05:30:30 +0000 (01:30 -0400)
commitace47d680c1383b41a705467fadb2c64e7f39c71
tree2ab4754109d2da986b31f4a74142a027498088c3
parenta519c2cf8a56d92061e00b715b65a73dd66692c6
Locale::Maketext external cache support

This patch with tests provides RO support for lexicon hashes in
Locale::Maketext.  This allows you to have GDBM language files owned by
root which can be accessed by non-root, but not altered.

If your lexicon is a tied hash the simple act of caching the compiled
value can be fatal.

For example a GDBM_File GDBM_READER tied hash will die with something
like:

  gdbm store returned -1, errno 2, key "..." at ...

All you need to do is turn on caching outside of the lexicon hash itself
like so:

  sub init {
      my ($lh) = @_;
      ...
      $lh->{'use_external_lex_cache'} = 1;
      ...
  }

And then instead of storing the compiled value in the lexicon hash it
will store it in $lh->{'_external_lex_cache'}

I've verified that blead is the authoritative location for
Locale::Maketext source.

Signed-off-by: David Golden <dagolden@cpan.org>
MANIFEST
dist/Locale-Maketext/lib/Locale/Maketext.pm
dist/Locale-Maketext/lib/Locale/Maketext.pod
dist/Locale-Maketext/t/04_use_external_lex_cache.t [new file with mode: 0644]