2014-06-10 9 views
12

Ho un semplice file di testo POD:Perché perldoc valutare 'Münster' come 'Münster'

$ cat test.pod 
=encoding UTF-8 

Münster 

è codificato in UTF-8, di cui al presente letterale esadecimale del file:

00000000 3d 65 6e 63 6f 64 69 6e 67 20 55 54 46 2d 38 0a |=encoding UTF-8.| 
00000010 0a 4d c3 bc 6e 73 74 65 72 0a     |.M..nster.| 
0000001a 

Il "ü" viene codificato come i due byte C3 e BC.

Ma quando eseguo perldoc nel file, i miei caratteri UTF-8 sono convertiti in ASCII.

Inoltre, gestisce correttamente la convenzione di lingua tedesca che rappresenta "ü" come "ue".

$ perldoc test.pod | cat 
TEST(1)    User Contributed Perl Documentation    TEST(1) 

Muenster 

perl v5.16.3      2014-06-10       TEST(1) 

Perché sta facendo questo?

Esiste una dichiarazione aggiuntiva che posso inserire nel mio file per impedirlo?


Dopo ulteriore indagine con App::perlbrew ho trovato la differenza deriva dall'avere una particolare versione di Pod :: perldoc.

perl-5.10.1 3.14_04 Muenster 
perl-5.12.5 3.15_02 Muenster 
perl-5.14.4 3.15_04 Muenster 
perl-5.16.2 3.17  Münster 
perl-5.16.3 3.19  Muenster 
perl-5.16.3 3.17  Münster 
perl-5.17.3 3.17  Münster 
perl-5.18.0 3.19  Muenster 
perl-5.18.1 3.23  Münster 

Tuttavia mi piace ancora, se possibile, un modo per rendere Pod :: perldoc 3.14, 3.15, 3.19 e comportarsi "in modo corretto".

risposta

6

Abbiamo trovato questo biglietto RT http://rt.cpan.org/Public/Bug/Display.html?id=39000

Questo "bug" sembra essere introdotto con il Perl 5.10 e forse questo è stato risolto nelle versioni successive.

Vedere anche: How can I use Unicode characters in Perl POD-derived man pages? e incorrect behaviour of perldoc with UTF-8 texts.

È necessario aggiungere l'ultima versione disponibile di Pod::Perldoc come dipendenza.

+0

Interessante che secondo https://metacpan.org/source/MALLEN/Pod-Perldoc-3.23/Changes RT # 39000 è stato corretto in 3.15_12 ma vedo una regressione in 3.19. – Kaoru

+1

La soluzione su cui ho optato per aggiungere 'Pod :: Perldoc 3.21' come dipendenza, che dovrebbe garantire che chiunque usi il modulo abbia una versione abbastanza recente di' perldoc' per leggere effettivamente il POD! – Kaoru

+0

Sì, qualcosa di strano sta cucinando lì. Usare l'ultima versione è quello che posso suggerire. –