2017-05-31 5 views
0

mein Code Hier ist zur Zeit:Teile von Linien in einzelne Strings in Perl

open (MYFILE, "text.txt"); 
    while(<MYFILE>){ 
     split; 
     if (m,test,){ 
      print $_; 
     } 
    } 
    close(MYFILE); 

Also, wenn meine test.txt Datei hatte folgende:

line 1: this is a test line 
line 2: this has nothing 
line 3: oh here's a test 

Meine Ausgabe ist:

line 1: this is a testword line 
line 3: oh here's a testphrase 

Mein gewünschter Ausgang gibt nur das Wort mit "Test" aus oder

line 1: testword 
line 3: testphrase 

Ich dachte mit "Split", es ändert sich wie Perl liest die Eingabe anstelle von Zeile für Zeile jetzt wäre es Wort für Wort, aber es scheint nicht zu funktionieren. Irgendwelche Gedanken oder Vorschläge?

+0

'split' ist eine Funktion, die eine Liste von Wörtern zurückgibt - was haben Sie mit dieser Liste gemacht? – NetMage

+0

Ich dachte, ich benutze den Musterprüfer auf dieser Liste von Wörtern, um das gesuchte Wort zu finden, zumindest versuchte ich das. – flantasyrm7

+0

Das 'if (m/test /)' ist ein impliziter Test gegen '$ _ ', das ist die Zeile, die von' 'gelesen und dann gedruckt wird. 'split' hat keine implizite Ausgabevariable. – NetMage

Antwort

0
open (MYFILE, "text.txt"); 
while(<MYFILE>) { 
    print grep /test/, split; 
} 
close(MYFILE); 
Verwandte Themen