Portál AbcLinuxu, 7. května 2025 14:37

Dotaz: Perl: modul Locale::gettext nainstalovaný do adresáře nechce fungovat

7.4.2010 00:17 imploder | skóre: 11
Perl: modul Locale::gettext nainstalovaný do adresáře nechce fungovat
Přečteno: 276×
Odpovědět | Admin
Stáhnul jsem si modul Locale::gettext a podle návodu na instalování modulů z CPANu jsem ho nainstaloval:
$ tar -xf gettext-1.05.tar.gz
$ cd gettext-1.05
$ perl Makefile.PL PREFIX=.. && make && make test && make install
Všechno proběhlo v pořádku, v adresáři se objevily adredáře lib a share.
$ cd ..
$ ls
a.out            cst-help.txt  cst.pot     gettext-1.05         lib     sablona.pot  test.c
cst-help-en.txt  cst.pl        gettext.pm  gettext-1.05.tar.gz  locale  share        zal
Program (cst.pl) je:
#!/usr/bin/env perl
use strict;

use POSIX;
setlocale(LC_ALL, "");

use FindBin;
use lib $FindBin::RealBin.'/lib/perl5/site_perl';

use Locale::gettext;
my $g = Locale::gettext->domain_raw('cst');  # domain_raw na automatické přizpůsobení kódování
$g->dir('kek');
(zbytek jsem odmazal, chyba je někde už tady na začátku)

Po spuštění programu se vypíše tohle:
$ perl -w cst.pl
Constant subroutine main::LC_CTYPE redefined at /usr/lib/perl5/5.10.0/Exporter.pm line 66.
 at cst.pl line 10
Prototype mismatch: sub main::LC_CTYPE () vs none at /usr/lib/perl5/5.10.0/Exporter.pm line 66.
 at cst.pl line 10
Constant subroutine main::LC_NUMERIC redefined at /usr/lib/perl5/5.10.0/Exporter.pm line 66.
 at cst.pl line 10
Prototype mismatch: sub main::LC_NUMERIC () vs none at /usr/lib/perl5/5.10.0/Exporter.pm line 66.
 at cst.pl line 10
Constant subroutine main::LC_TIME redefined at /usr/lib/perl5/5.10.0/Exporter.pm line 66.
 at cst.pl line 10
Prototype mismatch: sub main::LC_TIME () vs none at /usr/lib/perl5/5.10.0/Exporter.pm line 66.
 at cst.pl line 10
Constant subroutine main::LC_COLLATE redefined at /usr/lib/perl5/5.10.0/Exporter.pm line 66.
 at cst.pl line 10
Prototype mismatch: sub main::LC_COLLATE () vs none at /usr/lib/perl5/5.10.0/Exporter.pm line 66.
 at cst.pl line 10
Constant subroutine main::LC_MONETARY redefined at /usr/lib/perl5/5.10.0/Exporter.pm line 66.
 at cst.pl line 10
Prototype mismatch: sub main::LC_MONETARY () vs none at /usr/lib/perl5/5.10.0/Exporter.pm line 66.
 at cst.pl line 10
Constant subroutine main::LC_MESSAGES redefined at /usr/lib/perl5/5.10.0/Exporter.pm line 66.
 at cst.pl line 10
Prototype mismatch: sub main::LC_MESSAGES () vs none at /usr/lib/perl5/5.10.0/Exporter.pm line 66.
 at cst.pl line 10
Constant subroutine main::LC_ALL redefined at /usr/lib/perl5/5.10.0/Exporter.pm line 66.
 at cst.pl line 10
Prototype mismatch: sub main::LC_ALL () vs none at /usr/lib/perl5/5.10.0/Exporter.pm line 66.
 at cst.pl line 10
Na řádku 10 je use Locale::gettext. Nevím, proč se to vypisuje a funkce modulu nefungují, něco je špatně, ale netuším co. Poradíte mi prosím, čím to je a jak to spravit? Dík.

Proč to řeším: Potřebuju prostě přibalit modul Locale::gettext k programu, aby běžel i tam, kde není nainstalovaný. Takže se nainstaluje do adresáře s programem jen pro něj, na to nejsou potřeba práva roota.

Řešení dotazu:


Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

Řešení 1× (imploder (tazatel))
7.4.2010 07:22 pht | skóre: 48 | blog: pht
Rozbalit Rozbalit vše Re: Perl: modul Locale::gettext nainstalovaný do adresáře nechce fungovat
Odpovědět | | Sbalit | Link | Blokovat | Admin
http://www.mail-archive.com/debian-bugs-dist@lists.debian.org/msg515276.html ?
In Ada the typical infinite loop would normally be terminated by detonation.
7.4.2010 09:40 imploder | skóre: 11
Rozbalit Rozbalit vše Re: Perl: modul Locale::gettext nainstalovaný do adresáře nechce fungovat
Díky. Přidáním
use POSIX qw(:locale_h);
do modulu se to vyřešilo a gettext funguje.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.