Perl split einen string mit einem string-basierten Trennzeichen

Ich bin ganz neu in Perl, aber auf der Grundlage der Dokumentation, die ich gelesen habe, sieht es aus wie der split-Funktion in ein Perl-fragt nach einem regex-Muster, anstatt eine Zeichenfolge, Trennzeichen, wie der erste parameter, aber ich fand, dass Sie so etwas wie print +(split(' ', $string))[0] noch split die Zeichenfolge richtig.

Basierend auf dieser, ich habe versucht, eine variable zu verwenden, Trennzeichen (ex. print +(split($var, $string))[0] wo $var = ' ') und fand, dass es nicht funktioniert. Was mache ich falsch?

Dank!

BEARBEITEN:
Sorry für die schreckliche Frage. Ich lief gegen eine Zeichenkette mit führenden Leerzeichen und festgestellt, dass die split-Funktion nicht wie die führenden Leerzeichen. Zum Beispiel:

my $var = ' ';
print +(split($var, ' abc ddddd'))[0]

gibt eine leere Ausgabe. Ist $var wird interpretiert als /$var/ innerhalb der split Funktion?

versus

print +(split(' ', ' abc ddddd'))[0]
das gibt eine Leistung von abc

Also wenn ich die Dokumentation Lesen, ich war der Annahme, meine variable als string-literal, wenn es in Wirklichkeit nicht war, und daher die führenden whitespace-Zeichen wurde nicht entfernt.

  • it did not work ist nicht detailliert genug. Erstellen einer ausführbaren Testfall.
  • Funktioniert Prima ... eval.in/240865
  • Jedes mal, wenn Sie eine Frage haben über ein Perl-built-in-Funktionen, empfehle ich Ihnen zu überprüfen perldoc. Wenn es auf Ihrem system installiert haben, können Sie perldoc -f <function> oder in diesem Fall, perldoc -f split (habe ich verlinkt mit der online-version aus Bequemlichkeit). Die Dokumentation ist ausgezeichnet. Ihre Unsicherheit über split mit regex vs. string ist ausführlich erläutert, einschließlich der besonderen Fall von split ' '.
  • Was bedeutet "funktioniert nicht" bedeutet? "funktioniert nicht" ist eine Unzureichende Beschreibung für uns, das problem zu verstehen. Was passiert, wenn du es ausprobiert? Hast du eine Fehlermeldung bekommen? Hast du falsche Ergebnisse? Haben Sie keine Ergebnisse erhalten? Wenn die Ergebnisse falsch waren, was machte Sie falsch? Was hast du erwartet statt? Hast du irgendwelche richtigen Ergebnisse? Wenn ja, welche waren das? Lass uns nicht raten.
  • Da split ' ' wird ein literal space als Trennzeichen, beriefen sich auf den besonderen Fall beschrieben, in die perldoc. $var = ' '; split $var entspricht der split / /, das ist eine regex, split, nicht die gleiche Sache.
InformationsquelleAutor Ryan Foley | 2015-01-09
Schreibe einen Kommentar