#! /bin/sh . "${srcdir=.}/init.sh"; path_prepend_ . ../src # Tests for the general string extraction facilities of the Perl backend # (with option --extract-all). cat <<\EOPERL > xg-pl-4.pl use strict; # A double quoted string. print "'Your command, please?', asked the waiter.\n"; # A double quoted string with interpolations. my $polite = 'please'; print "'Your recommendation, $polite?', answered the guest.\n"; # A reference. my $ref1 = \$polite; my $ref2 = \$ref1; my $ref3 = \$ref2; print "Yes, $$$$ref3!\n"; # The qq operator and some of the more esoteric string interpolation # features of Perl. print (qq {\uU\lp \LaNd\E \ldo\lWn, \Uoh\E, yeah\Q!!!\E\\!\n}); # The q operator. print q<E-Mail: <no@spam.org>. >; # Should not be found. { $polite =~ qr?le? } # List interpolation. print "Your Perl include path starts with '$INC[0]' and it " . "ends with '$INC[-1]'. $#INC directories are searched.\n"; # Here documents. print <<EOF, <<'EOF'; Line 1\nLine 2 EOF Line 1\nStill line 1 EOF # Perl code inside strings. sub hello_func { return 'Hello' }; print "@{[hello_func]} world!\n"; # Backticks. print `ls $0`; print qx;ls $0;; if (!defined($size = -s $filename)) { # The above s is part of the function -s, not # the substitution operator! } # The rest requires a Unicode aware Perl. require 5.006; print "\U\x70\LO\154\x{69}\x{004E}a \Q\lRu\LLeS\E\041\n"; # FIXME: The following should actually produce 'Polina4ka' in cyrillic letters. #print "\u\x{43f}\L\x{41E}\x{43b}\x{418}\E\x{43d}" . # "\x{430}\x{447}\x{43a}\x{430}\n"; EOPERL : ${XGETTEXT=xgettext} LC_MESSAGES=C LC_ALL= \ ${XGETTEXT} -a --omit-header --no-location -o xg-pl-4.tmp.pot xg-pl-4.pl || exit 1 LC_ALL=C tr -d '\r' < xg-pl-4.tmp.pot > xg-pl-4.pot || exit 1 cat <<\EOF > xg-pl-4.ok msgid "'Your command, please?', asked the waiter.\n" msgstr "" msgid "please" msgstr "" msgid "'Your recommendation, $polite?', answered the guest.\n" msgstr "" msgid "Yes, $$$$ref3!\n" msgstr "" msgid "Up and down, OH, yeah\\!\\!\\!\\!\n" msgstr "" msgid "E-Mail: <no@spam.org>. " msgstr "" msgid "" "Your Perl include path starts with '$INC[0]' and it ends with '$INC[-1]'. " "$#INC directories are searched.\n" msgstr "" msgid "" "Line 1\n" "Line 2\n" msgstr "" msgid "Line 1\\nStill line 1\n" msgstr "" msgid "Hello" msgstr "" msgid "@{[hello_func]} world!\n" msgstr "" msgid "ls $0" msgstr "" msgid "Polina rules!\n" msgstr "" EOF : ${DIFF=diff} ${DIFF} xg-pl-4.ok xg-pl-4.pot result=$? exit $result