Hallo Siechfred!
Also ich erhalte keine Warnung (ActiveState Perl 5.8.8 unter Win2kPro).
Seltsam, seltsam... (hier ist ActiveState Perl 5.8.7, Win XP SP2).
Ein kompletter Test, direkt von der Konsole kopiert:
-------------
C:>perl -w
use strict;
my $t = "<form action='bla'>
<input type='text' value='2'>
<textarea></textarea>
</form>";
if($t =~ /<form.+form>/s) { print "wahr ($&)\n" }
else { print "falsch\n" }
#############
my $string = "blabla
blabla";
if($string =~ !blabla(.*?)blabla!s) { print "wahr ($&)\n" }
Bareword found where operator expected at - line 17, near ")blabla"
(Missing operator before blabla?)
else { print "falsch\n" }
^Z
syntax error at - line 17, near "(."
Substitution replacement not terminated at - line 17.
-------------
?
Warum »substitution replacement»? Sieht so aus, wls würde er den Modifier s als Beginn einer Ersetzung sehen, alles davor ist unquoted also »Bareword«? Nur Warum?
Noch mal mit /:
-------------
C:>perl -w
use strict;
my $t = "<form action='bla'>
<input type='text' value='2'>
<textarea></textarea>
</form>";
if($t =~ /<form.+form>/s) { print "wahr ($&)\n" }
else { print "falsch\n" }
#############
my $string = "blabla
blabla";
if($string =~ /blabla(.*?)blabla/s) { print "wahr ($&)\n" }
else { print "falsch\n" }
^Z
wahr (<form action='bla'>
<input type='text' value='2'>
<textarea></textarea>
</form>)
wahr (blabla
blabla)
-------------
Korrekt...
Viele Grüße aus Frankfurt/Main,
Patrick