####################Anfang############## #!/usr/local/bin/perl use strict; ################################################################################ #Initialisierung my (@botschaften_gesamt); ################################################################################ #main-Routine print "\n\n ----------- Start --------- \n\n"; read_in(); process(); print "\n\n ----------- Ende  --------- \n\n"; ################################################################################ sub read_in {    my ($botschaft_bin) = "\x00" x 16;    my ($path_in) = shift @ARGV;    open (FILE, "$path_in") or die $!;    binmode (FILE);    #es genügt den Cursor einmal in der Datei zu setzen    seek (FILE, 1024, 0);    until (substr($botschaft_bin,0,5) eq "\xFF" x 5 &&    $botschaft_bin ne "\xFF" x 16) {        ######################################################################   #Einlesen einer Botschaft des cco.files -> i.O.     read (FILE, $botschaft_bin, 16);   ######################################################################   #in der Botschaftsstruktur abspeichern        push (@botschaften_gesamt, $botschaft_bin);   } close (FILE); } ################################################################################ sub process {    my (@botschaft_process);    #print    mkdir "./result"; open Gelb, ">./result/gelb01.asc"; open Gruen, ">./result/gruen01.asc"; open Blau, ">./result/blau01.asc";     my ($kanal);    my (%hash) = ("01",*Gelb , "02",*Gruen , "04",*Blau); foreach (@botschaften_gesamt) {        #binäre Darstellung in hexadezimale wandeln     $_ = unpack ("H32", $_);     #Botschaft in ihre Elemente mittels unpack zerlegen @botschaft_process = unpack("A10 A2 A20", $_);     #alle CAN-Kanaele können durchlaufen werden        foreach $kanal(keys(%hash))        {         if ($botschaft_process[1] eq $kanal)         {                printf {$hash{$kanal}} " %16s %1s  %20s \n", $botschaft_process[0],$botschaft_process[1],$botschaft_process[2];             last;         }        }        #Leeren des Feldes durch Freigeben des Elements     $_ = undef;    }    close Gelb; close Gruen; close Blau; } ######################################################Ende##########################