2011-06-24T17:48:56 rostiDie Verwendung der Schablone "%8C*" in Deinem Code ist mir unverständlich.
[...]
1 2
my $str = "*010 3 476.8 9.84 4691 240.4 16.48 3973 50 3937 "; say unpack("%8C*", ($str =~ /\*([^ ]+) /)[0])
Quotegebildet werden soll. Demnach müsste man das Leerzeichen noch mit in der Prüfsumme verrechnen (in meinem Beispielcode könnte man dazu einfach die Klammer im regulären Ausdruck hinter das Leerzeichen verschieben) und das Ergebnis wäre im angegebenen Beispiel nicht mehr 145 sondern 177.[...] von „*“ einer Zeile bis einschließlich Leerzeichen [...]
2011-06-25T09:47:46 wollik[...]
Bitte könntest Du uns hier im Forum noch erklären was Deine REGEX mit dem String $str macht ?
[...]
1 2 3 4 5
my @x = unpack("C*", "*010 3 476.8 9.84 4691 240.4 16.48 3973 50 3937 "); my $sum = 0; for(@x){$sum += $_;} # 2278 $sum %= 256; # 8-Bit-Überträge rausrechnen print $sum; # 230