Hallo,
weiter mit folgendem Problem,
Code:
61 my $ctr=0;
62 foreach(@Standard)
63 {
64 $_=~ s/^.*:new\s*$/\U$ARGV[$arg] :NEW\n/i;
65 if($ctr==1)
66 {
67 printf MSINDO_INP(" %2d %10.5f %10.5f %10.5f\n", 0, 0.0, 0.0, 0.0);
68 printf MSINDO_INP(" %2d %10.5f %10.5f %10.5f\n", split) foreach (@CrystalTmp);
69 }
70 $ctr++ if(m/^\s*:End\s*/);
71 print MSINDO_INP $_;
72 }
Kurz zur Erläuterung:
Ich habe zwei Text-Dateien teilweise eingelesen und möchte die jetzt miteinander in der Datei des Filehandles (MSINDO_INP) verwursten, die Information der beiden Dateien liegen jeweils in den Arrays @Standard und @CrystalTmp vor.
@Standard zeichnet sich durch mehrere Blöcke aus,
die durch ein ":End" getrennt werden, in den Block zwischen dem ersten
und zweiten ":End" soll der Inhalt von @CrystalTmp gefüllt werden(Zeile 65-70).
Zeile 64 ist unwichtig und verändert nur die Titelzeile in @Standard...
Das Programm schreibt auch bis zu dem ersten ":End",
aber dann kommt eine Fehlermeldung, mit der ich nichts anfangen kann.
Undefined subroutine &main::MSINDO_INP called at ./Test1.pl line 67.
Kann mir jemand erklären, was da schief geht.
EDIT:
Es scheint irgendetwas mit der Funktion printf bei Anwendung auf einen FILEHANDLE
tun zu haben, aber wie kann ich das beheben?
Danke
Rahul
Lesezeichen