Abend zusammen
Ich versuch mal präziesere Angaben zu machen:
$sessioncut enthält z.B. folgenden String:
---------------------------
1_10x5_50.00_2_10x5x2_50.00
---------------------------
Ich möchte die Unterstriche in diesem String zählen.
Dann möchte ich zum Ergebnis eins (+1) dazuzählen.
Dann den so erhaltenen Wert durch drei (geteilt 3) teilen.
-> Ergebnis = Anzahl Datensätze (Artikel).
Der Perl-Code dazu sieht so aus:
-----------------------------------------------
for(my $i = 0; $i <= length($sessioncut); $i++) {
if ($sessioncut =~ m/_/) {
$zeichenanzahl = $zeichenanzahl + 1;
}
}
$zeichenanzahl = ($zeichenanzahl + 1) / 3;
-----------------------------------------------
Die for Schleife ermittelt über length die Länge von $sessioncut und läuft so lange durch, bis $sessioncut endet. Bei jedem Durchlauf sieht die if-Anweisung nach, ob ein Unterstrich gefunden wurde. Wenn ja, erhöht sich $zeichenanzahl um eins.
Unter der For-Schleife wird dann eins dazugezählt und duch drei dividiert.
Soweit zur Theorie...
Irgendwo muss in der Schleife ein Fehler sein.
Er liefert 4,666666666667 (Periode) statt 5 (Unterstriche) plus 1 (dazu) Ergebnis durch drei also (5+1)/3 = 2 Artikel!
Warum?