This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Keep verbatim pod in various dist/* pods within 79 cols
[perl5.git] / dist / Locale-Maketext / lib / Locale / Maketext.pod
index 15533e4..ce280be 100644 (file)
@@ -166,7 +166,8 @@ file, you might consider something like this in your project class:
     my $lh;
     if($chosen_language) {
       $lh = $class->get_handle($chosen_language)
-       || die "No language handle for \"$chosen_language\" or the like";
+       || die "No language handle for \"$chosen_language\""
+            . " or the like";
     } else {
       # Config file missing, maybe?
       $lh = $class->get_handle()
@@ -937,6 +938,25 @@ lexicon keys be autoable, except for possibly a few, and I
 arbitrarily decided to use a leading underscore as a signal
 to distinguish those few.
 
+=head1 READONLY LEXICONS
+
+If your lexicon is a tied hash the simple act of caching the compiled value can be fatal.
+
+For example a L<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'}
+
 =head1 CONTROLLING LOOKUP FAILURE
 
 If you call $lh->maketext(I<key>, ...parameters...),