#!/usr/bin/perl use strict; use warnings; use Getopt::Long; # Parameteruebergabe # Uebergabeparameter einlesen GetOptions ('i=s' , \$infile1); print "$infile1\n"; open ( my $in1_fh, '<', $infile1) || die "\n Datei $infile1 konnte nicht geoeffnet werden ($!)\n"; my @Datafield_List = <$in1_fh>; close($in1_fh); chomp(@Datafield_List); my $i=0; for my $zeile (@Datafield_List) { if($zeile =~ m/\.datafield$/i) { # was du hier machen willst weiß ich nicht #my $pfad = ... ; #open(my $in2_fh,'<', $pfad) || die "Datei $pfad konnte nicht geoeffnet werden($!)\n"; # ... $i++; } } for my $zeile (@Datafield_List) { # finde in der Zeile was nach aussieht if($zeile =~ m/<(\w+)\s*(.*?)\s*>/i) { # gefundener Name des XML-Tags my $name=$1; # parameter in dem XML-Tag my $params=$2; # weiter wenn nicht der gesuchte Tag next unless($name eq 'Measurement' or $name eq 'Parameter'); # finde in $params alles was nach key="wert" aussieht: while($params =~ /(\w+)\s*=\s*"([^"]+)"\s*/gc) { my $key=$1; my $val=$2; # weiter wenn $key nicht "nameAsap2" oder "name" next unless( $key eq 'nameAsap2' or $key eq 'name' ); # wenn Länge des Inhalts größer als 32 Zeichen if(length($val) > 32) { my $File = $infile1; print "\n !!! FEHLER !!! \n"; print "In der Datei '$File' besitzt folgender Strukturmember eine groessere Zeichenkette als 32 Zeichen: '$val'\n" print "Der Bezeichnername ist in der folgenden Zeile als $key bezeichnet: '$zeile'\n"; #system("command", 8) und '$1' für den ersten Treffer } } } } print "\nAlle Strukturmember besitzten eine Zeichenkette von weniger als 32 Zeichen.\n";