Andreas: in Schleife Hash $key-> $value zuweisen

Beitrag lesen

Hi!

foreach $item (@tmp_data){
       chomp($item);
       if (defined $item && $item==$min){
                                [...]

Was bezweckst du damit? - Klar, $item soll definiert sein, aber warum _muss_ es dann auch noch gleich mit $min sein? - Wie setzt du $min?

hatte ich das nicht mitgepostet? Naja:

Min/Max des Array bestimme ich vorher in einer Schleife, so wie Du es mir mal gezeigt hast.

my @tmp_data = split /|/;
    my @sorted = sort {$a<=>$b} @tmp_data;
    my $min = shift @sorted;
    my $max = pop @sorted;

Und ich muß das so machen, enn ich will das Minimum und das Maximum in der Ausgabe anders formatieren (daher $format_min, $format_max) in  $worksheet->write(...), so habe ich z.B. das Minimum grün und das Maximum rot. Daher muß ich das auch vorher bestimmen, damit ich dann innerhalb der Schleife prüfen kann, ob das jeweilige Element das Minimum ist, und in diesem Fall ein anderes Format wählen

if (defined $item && $item==$max){
        $worksheet->write($iRow - 1, $iCol, $item, $format_max);
    }
    elsif (defined $item && $item==$min){
        $worksheet->write($iRow - 1, $iCol, $item, $format_min);
    }
[...]

Das einzige Problem war jetzt noch, dass wenn vorhanden das leere/die leeren Felder das Minimum darstellten, und dem entsprechend mit grüner Schrift formatiert wurden, was ja Quatsch ist da die leer sind! Der niedrigste vorhandene Wert soll in Grün erscheinen!

Aber mit Deiner Hilfe klappt es!

kannst ja einfach über jedes Element iterieren, next unless defined und if ($min > $_) {$min = $_} bzw if ($max < $_) {$max = $_}

geht aus den oben genannten Gründen nicht!

Viele Grüße
Andreas

PS: so langsam verstehe ich auch perldoc...