Möchte eine Textdatei abändern, hierfür öffne ich zunächst die betroffenen Datei, lese den Inhalt in ein Array, ändere die Daten des Arrays nach Wunsch ab und schreibe anschließend die Daten des Arrays zurück in die Datei:
open(ALIASES3, "+<$aliases_file") or &error("Kann die Datei $aliases_file nicht lesen!");
while (<ALIASES3>){
push(@aliases4, $_);
}
close (ALIASES3);
open(ALIASES4, ">$aliases_file") or &error("Kann die Datei $aliases_file nicht lesen!");
while (<@aliases4>){
print ALIASES4 $_."\n";
}
close (ALIASES4);
in diesem Beispiel wird der Inhalt der Datei nur kopiert (alos keine Manipulation der enthaltenen Daten!). Die Sache funzt soweit, doch das Ergebniss sieht in etwa so aus:
admin:
admin@localhost
user:
user@localhost
user2:
user2@localhost
das Original sieht so aus:
admin: admin@localhost
user: user@localhost
user2: user2@localhost
(es handelt sich um eine Mail-Alias Datei)
irgendwie wird das Leerzeichen zwischen user: und user@localhost in einen Zeilenvorschub umgewandelt!
hilfe!