gettext: Special Keywords

 
 15.5.21.3 How to Extract Hash Keys
 ..................................
 
    Translating messages at runtime is normally performed by looking up
 the original string in the translation database and returning the
 translated version.  The “natural” Perl implementation is a hash lookup,
 and, of course, ‘xgettext’ supports such practice.
 
      print __"Hello world!";
      print $__{"Hello world!"};
      print $__->{"Hello world!"};
      print $$__{"Hello world!"};
 
    The above four lines all do the same thing.  The Perl module
 ‘Locale::TextDomain’ exports by default a hash ‘%__’ that is tied to the
 function ‘__()’.  It also exports a reference ‘$__’ to ‘%__’.
 
    If an argument to the ‘xgettext’ option ‘--keyword’, resp.  ‘-k’
 starts with a percent sign, the rest of the keyword is interpreted as
 the name of a hash.  If it starts with a dollar sign, the rest of the
 keyword is interpreted as a reference to a hash.
 
    Note that you can omit the quotation marks (single or double) around
 the hash key (almost) whenever Perl itself allows it:
 
      print $gettext{Error};
 
    The exact rule is: You can omit the surrounding quotes, when the hash
 key is a valid C (!)  identifier, i.e. when it starts with an underscore
 or an ASCII letter and is followed by an arbitrary number of
 underscores, ASCII letters or digits.  Other Unicode characters are
 _not_ allowed, regardless of the ‘use utf8’ pragma.