Thread Ganz simple Frage zum Operator !~ (8 answers)
Opened by Array at 2008-03-06 22:15

Array
 2008-03-06 22:15
#106686 #106686
User since
2008-02-27
6 Artikel
BenutzerIn
[default_avatar]
Hallo Leute,

ich habe mich jetzt mal angemeldet, weil ich wahrscheinlich doch mal etwas öfters Hilfe brauchen werde.
An dieser Stelle nochmals Danke an alle die mir letzens bei meiner Frage zur for-Schleife geholfen haben.

Folgendes Problem habe ich heute:


Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#!/usr/bin/perl -w

$muster ='(\d+\.\d+)';
$text = 4.12;
print "\$text: $text\n";


if (@zahlen = $text =~ m/$muster/)
        {print "(1) wahr: @zahlen\n";}
        else
        {print "(1) falsch: @zahlen\n";}
        
if (@zahlen = $text !~ m/$muster/)
        {print "(2) wahr: @zahlen\n";}
        else
        {print "(2) falsch: @zahlen\n";}
        
        
$text = 4.0;
print "\$text: $text\n";


if (@zahlen = $text =~ m/$muster/)
        {print "(3) wahr: @zahlen\n";}
        else
        {print "(3) falsch: @zahlen\n";}
        
if (@zahlen = $text !~ m/$muster/)
        {print "(4) wahr: @zahlen\n";}
        else
        {print "(4) falsch: @zahlen\n";}


Lese ich die Zahl 4.12 ein, gibt er mir (1) wahr: 4.12 aus. Ok, ist noch zu verstehen. Warum aber gibt er mir ebenso (2) wahr: (ohne Inhalt) aus??
Bei der zweiten if-Abfrage muss doch wegen des !~ Operators falsch ausgegeben werden, weil bei der ersten if-Abfrage wegen der Übereinstimmung die Abfrage true ist!

Die zweite Zahl ist 4.0. Hier bekomme ich (3) falsch: (ohne Inhalt). Verstehe ich auch, letzendlich wird nur 4 eingelesen und das Muster stimmt nicht mehr.
Ebenso bekomme ich (4) wahr: 1. Hier kann ich es nachvollziehen, 1 wird wahrscheinlich true bedeuten.

Normalerweise müsste das doch ganz simpel sein, oder beachte ich hier irgend eine Besonderheit nicht??


Vielen Dank für euere Bemühungen,

Array

View full thread Ganz simple Frage zum Operator !~