Split von dot mit Perl

Ich verwendet split-Funktion ist in zwei Varianten. Erste Möglichkeit:

my $string="chr1.txt";
my @array1=split(".",$string);
print $array1[0];

Bekomme ich diesen Fehler: Use of uninitialized value in print

Wenn ich durch split der zweite Weg, ich habe keine Fehler.

my @array1=split(/\./,$string);print $array1[0];

Meine erste Art und Weise der Aufteilung funktioniert nicht nur für dot.

Kann jemand erklären mir den Grund dafür?

  • split (".") oder split (/\./)
  • Das ist die falsche Antwort, weil das argument split wird immer interpretiert, als ein Muster. Übergeben eines Arguments von "." ist die gleiche wie die übergabe eines Arguments von /./: beide teilen auf einem nicht-newline [^\n] oder \Nwenn use re "/m" im Umfang, in welchem Fall es teilt auf jede einzelne Perl-codepoint, einschließlich nicht-Unicode-codepoints oben 0x1F_FFFF.
InformationsquelleAutor I am | 2012-08-25
Schreibe einen Kommentar