Hallo Perl!
Wenn Du <STDIN> als Handle benutzt, dann ist der Weg über ein Array nicht gut. Horst hat Dir den Tipp gegeben, weil er davon ausging, dass Dir ein String mit Zeilenumbrüchen vorliegt, wie:
my $str = "Meerjungfraumann\nund Blaubarschbube\nfinden das unsichtbare\nBootmobil nicht";
In deinem Fall würde ich es so lösen:
while (<STDIN>) {
print "$_" . ", WORT2\n" if /[1]*#{0,0}\bWORT1\b/;
}
ich hab vergessen zu sagen, dass ich noch das Problem habe, dass wenn das WORT1 gefunden wurde, das Wort WORT2 hintendran gehängt wird, Aber... davor ist wohl ein \n, wodurch das WORT2 in einer neuen Zeile geschrieben wird
Das dürfte sich erledigt haben, und das:
Desweiteren habe ich das Problem, dass "$stdin[$i] = qq~WORT1 WORT2\n~;" nur am Ende eingefügt werden soll, wenn vorher der reguläre Ausdruck auf keine Zeile gepasst hat
verstehe ich nicht ganz. Probier erst mit while und sowas Ähnlichem wie mein Beispeil und berichte über die Probleme, die dann kommen.
Viele Grüße aus Frankfurt/Main,
Patrick

_ - jenseits vom delirium - _
[link:hatehtehpehdoppelpunktslashslashwehwehwehpunktatomicminuseggspunktcomslash]
Nichts ist unmöglich? Doch!
Heute schon gegökt?
\t ↩︎