Hallo,
#!/usr/local/bin/perl -w
use strict;
my @array = ("P0","P1","P2");
my %completeNOA = ("Al",2,"vi",2);
for(0..$#array){
    open (NOA, ">","$array[$_].NOA")
        or die "Couldn't open $array[$_].NOA for writing: $!\n";
            print NOA $array[$_]."\n"; # Ueberschrift
            printf NOA "%s\t=\t%.3f\n",$_, $completeNOA{$_} for keys %completeNOA; # Hash    
    close(NOA);
}
 
Die files P1.NOA und P2.NOA werden aber zu meiner Ueberraschung als leere Bitmap-Dateien ausgegeben.
In diesem Beispiel funktioniert es aber was ist der Unterschied?
@array = ("Datei1","Datei2","Datei3");
my %Ausgabe = ("Zeile1",2,"Zeile2",2);
for(0..$#array){     
    open (NOA, ">","$array[$_].NOA")
        or die "Couldn't open $array[$_].NOA for writing: $!\n";
            print NOA $array[$_]."\n"; 
            printf NOA "%s\t=\t%.3f\n",$_, $Ausgabe{$_} for keys %Ausgabe;    
    close(NOA);    
} 
Ausgabe sollte so sein:
P0
Al      =       2.000
vi      =       2.000
P1
Al      =       2.000
vi      =       2.000
P2
Al      =       2.000
vi      =       2.000
Wie im zweiten Fall:
Datei1
Zeile2  =       2.000
Zeile1  =       2.000
Datei2
Zeile2  =       2.000
Zeile1  =       2.000
Datei3
Zeile2  =       2.000
Zeile1  =       2.000
Um sachdienliche Hinweise wird gebeten.