#!/usr/bin/perl use strict; use warnings 'all'; use Data::Dumper; # abfrage datei einlesen my $data = &datei_lesen('abfrage.txt'); # schwellwerte datei einlesen my $werte = &datei_lesen('schwellwerte.txt'); # daten vergleichen und anpassen foreach my$key (keys %{$data}) { # roter bereich if ($data->{$key} > $werte->{$key}->[1]) { $data->{$key} = 'rot' } # gelber bereich elsif ($data->{$key} > $werte->{$key}->[0]) { $data->{$key} = 'gelb' } # gruener bereich else { $data->{$key} = 'gruen' } } # Ergebnisse Anzeigen print Dumper($data); # NAME: datei_lesen() # USE: Datei anhand des musters in einen Hash einlesen. # PARAMETERS: Filename # RETURNS: Hash reference sub datei_lesen($) { # pick parameters my($file) = @_; # open file open(my$fhIN, '<', $file) or die "open failed: $!"; # read data my %data; while (my$line=<$fhIN>) { chomp($line); # split line my @tracts = split(';', $line); # key results from product and status my $key = join(';', splice(@tracts, 0, 2)); # maybe we have multiple values if ( @tracts > 1 ) { $data{$key} = [@tracts] } else { $data{$key} = $tracts[0] } } # close file close($fhIN); # return data reference return \%data; } # datei_lesen __END__