/ / utf-8 in einem Perl-Modulnamen - Perl, Utf-8, Perl-Modul

utf-8 in einem Perl-Modulnamen - Perl, Utf-8, Perl-Modul

Wie schreibe ich ein Perl-Modul mit utf-8 im Namen und Dateinamen? Mein aktueller Versuch ergibt "Kann Täst.pm in @INC nicht finden", aber die Datei existiert. Ich bin unter Windows und habe dies noch nicht unter Linux versucht.

test.pl:

use strict;
use warnings;
use utf8;
use Täst;

Täst.pm:

package Täst;
use utf8;

Aktualisieren: Meine aktuelle umgehung so use Tast (ASCII) und setzen package Täst (Unicode) in Tast.pm (ASCII). Es ist jedoch verwirrend.

Antworten:

3 für die Antwort № 1

Leider passen Perl-, Windows- und Unicode-Dateinamen im Moment wirklich nicht zusammen. Ich empfehle Ihnen, sich viel Mühe zu ersparen und bei den Modulnamen nur ASCII zu verwenden Blogeintrag erwähnt einige der Probleme.


3 für die Antwort № 2

Das use utf8 muss vor dem erscheinen package Täst, damit letzteres richtig interpretiert werden kann. Auf meinem Mac:

test.pl:

#!/usr/bin/perl

use strict;
use warnings;

use utf8;
use Tëst;

# "use utf8" only indicates the code"s encoding, but we also want stdout to be utf8
use encoding "utf8";

Tëst::hëllö();

Tëst.pm:

use utf8;
package Tëst;

sub Tëst::hëllö() {
print "Hëllö, wörld!n";
}

1;

Ausgabe:

Macintosh:Desktop sherm$ ./test.pl
Hëllö, wörld!

Wie gesagt, ich habe das auf meinem Mac ausgeführt. Wie bereits bei cjm erwähnt, kann Ihre Laufleistung unter Windows variieren.


2 für die Antwort № 3

Die Unicode-Unterstützung schlägt häufig an den Grenzen fehl. Paket- und Unterprogrammnamen müssen sauber auf Dateinamen abgebildet werden, was bei einigen Betriebssystemen problematisch ist. Das Betriebssystem muss nicht nur den Dateinamen erstellen, den Sie erwarten, sondern Sie müssen auch in der Lage sein, ihn später als denselben Namen zu finden.

Wir haben ein wenig über das Problem mit dem Dateinamen in gesprochen Effektive Perl-Programmierung, aber ich habe auch viel mehr in zusammengefasst Wie erstelle ich dann lange Windows-Pfade aus Perl?. Jeff Atwood erwähnt dies als Teil seines Beitrags zu seinem Dateisystempfade: Wie lang ist zu lang?.


1 für die Antwort № 4

Ich würde diesen Ansatz nicht empfehlen, wenn dies der Fall istSoftware, die Sie veröffentlichen möchten, um ehrlich zu sein. Selbst wenn Sie es gut laufen lassen, ist es auf Computern, auf denen utf-8 nicht richtig konfiguriert ist, möglicherweise etwas instabil und / oder Dateinamen enthalten möglicherweise keine utf-8-Zeichen usw.