Next: , Previous: , Up: Individual Programming Languages   [Contents][Index]


15.5.21 Perl

RPMs

perl

Ubuntu packages

perl, libintl-perl

File extension

pl, PL, pm, perl, cgi

String syntax
  • "abc"
  • 'abc'
  • qq (abc)
  • q (abc)
  • qr /abc/
  • qx (/bin/date)
  • /pattern match/
  • ?pattern match?
  • s/substitution/operators/
  • $tied_hash{"message"}
  • $tied_hash_reference->{"message"}
  • etc., issue the command ‘man perlsyn’ for details
gettext shorthand

__ (double underscore)

gettext/ngettext functions

gettext, dgettext, dcgettext, ngettext, dngettext, dcngettext, pgettext, dpgettext, dcpgettext, npgettext, dnpgettext, dcnpgettext

textdomain

textdomain function

bindtextdomain

bindtextdomain function

bind_textdomain_codeset

bind_textdomain_codeset function

setlocale

Use setlocale (LC_ALL, "");

Prerequisite

use POSIX;
use Locale::TextDomain; (included in the package libintl-perl which is available on the Comprehensive Perl Archive Network CPAN, https://www.cpan.org/).

Use or emulate GNU gettext

platform dependent: gettext_pp emulates, gettext_xs uses GNU gettext

Extractor

xgettext -k__ -k\$__ -k%__ -k__x -k__n:1,2 -k__nx:1,2 -k__xn:1,2 -kN__ -kN__n:1,2 -k__p:1c,2 -k__np:1c,2,3 -kN__p:1c,2 -kN__np:1c,2,3

Formatting with positions

Both kinds of format strings support formatting with positions.
printf "%2\$d %1\$d", ... (requires Perl 5.8.0 or newer)
__expand("[new] replaces [old]", old => $oldvalue, new => $newvalue)

Portability

The libintl-perl package is platform independent but is not part of the Perl core. The programmer is responsible for providing a dummy implementation of the required functions if the package is not installed on the target system.

po-mode marking

Documentation

Included in libintl-perl, available on CPAN (https://www.cpan.org/).

An example is available in the examples directory: hello-perl.

The xgettext parser backend for Perl differs significantly from the parser backends for other programming languages, just as Perl itself differs significantly from other programming languages. The Perl parser backend offers many more string marking facilities than the other backends but it also has some Perl specific limitations, the worst probably being its imperfectness.


Next: PHP Hypertext Preprocessor, Previous: Tcl - Tk’s scripting language, Up: Individual Programming Languages   [Contents][Index]