while (my $line = <$read_handle>) { my $Inca_Name; my $Inca_Vchk; my $Inca_Comment; #-------------------------------------------------------------------- # Variable check bloc #-------------------------------------------------------------------- if ($line =~ /class\=/ and $line =~ /CAN signal/) { #my %VarCheck; #my $Inca_Name; #my $Inca_Vchk; #my $Inca_Comment; #-----collect Signal Informations----------------------------------- ($Inca_Vchk, $Inca_Name, $Inca_Comment)= $line =~ /^<[A-Z]+\s+[a-z]+\=\'([a-z]+)\'><[A-Z]+>[^0-9]+<\/[A-Z]+><[A-Z]+>\'([a_zA-Z0-9_]+)\'\s+([^0-9]*?)<[^0-9]+/; #$VarCheck{'INCA_NAME'} = $Inca_Name; #$VarCheck{'INCA_VCHK'} = $Inca_Vchk; #$VarCheck{'INCA_COMMENT'} = $Inca_Comment; #$VarCheck{'SIGNAL'} = \@Signals; push(@Sig_Incadata, $Inca_Vchk, $Inca_Name, $Inca_Comment); print "Variable Check:\n\n$Inca_Vchk $Inca_Name $Inca_Comment\n\n"; # 1. Prüfstelle } #-------------------------------------------------------------------- # END Variable check bloc #-------------------------------------------------------------------- #-------------------------------------------------------------------- # Bus resolution check bloc #-------------------------------------------------------------------- if ($line =~ /class\=/ and $line =~ /ECU internal variable/) { my $Int_Vchk; my $Int_Name; my $Int_Comment; #-----collect Signal Informations----------------------------------- my $regexp = qr { class='([^']+)'.*?'([^']+)'\s*([^<]+) }x; # ENDE Regexp ($Int_Vchk, $Int_Name, $Int_Comment) = $line =~ $regexp; push(@Sig_Intdata, $Int_Vchk, $Int_Name, $Int_Comment); print "Resolution Check:\n\n$Int_Vchk $Int_Name $Int_Comment \n\n"; # 2. Prüfstelle } #-------------------------------------------------------------------- # END Bus resolution check bloc #-------------------------------------------------------------------- #-------------------------------------------------------------------- # Signal conversion check bloc #-------------------------------------------------------------------- if ($line =~ /class='/ and ($line !~ /ECU internal resolution/)and ($line =~ /$Sig_Incadata[1]/) and ($line =~ /\d+/)) { my $Sig_ConChk; my $Sig_ConCom; my $Bus_Value; my $Ecu_Value; my $deviation; #-----collect Signal Informations----------------------------------- my $regexp = qr { class='([^']+)'.*?(\d+)[^']+(\d+)<\/TD>(\d+)<\/TD>([^']+) }x; # ENDE Regexp (Problem liegt sicherlich hier) ($Sig_ConChk, $Bus_Value, $Ecu_Value, $deviation, $Sig_ConCom)= $line =~ $regexp; push(@table, $Sig_ConChk, $Bus_Value, $Ecu_Value, $deviation, $Sig_ConCom); print "Test:\n\n@Sig_Incadata\n@Sig_Intdata"; print "$table[1]\n"; # 3. Prüfstelle } #-------------------------------------------------------------------- # END Signal conversion check bloc #-------------------------------------------------------------------- } <>;