hallo,
open IN, $dateiname or die "$!";
open OUT, ">$dateiname" or die "$!";
ja ja, ich war schlampig.
In diesem Fall besteht IMHO kein Grund, die gesamte Datei in ein Array zu lesen. Dies kann sehr Speicherintensiv werden.
es ist immer die Frage, was gerade besser ist, nur mit einer Datei arbeiten oder mit zweien. wenn die Datei gecht groß ist, dann ist es zweifellos besser, mit einer zwischendatei zu arbeiten.
ein zweiter Grund könnte sein, daß die Datei auch von anderen Prozessen, z.B. dem Webserver immer gebraucht wird. dann ist es besser die Datei kurz vorher erst zu entfernen und die zwsichendatei umzubenennen.
Mit einer Zwischendatei würde ich das Array auch weglassen:
while (<IN>) {
»» print OUT unless /^$/;
}
auch hier wieder Vorischt:
eine leerzeile ist nicht wirklich leer, und <IN> bringt dann ein '\n' daher,also
while (<IN>)
{
chomp;
print OUT unless /^$/;
}
aber, um das ganze abzukürzen, sollte der geneigte Programmierer sich die Datei ansehen, und dann entscheiden, welchen Weg er beschreiten will.
weil wie sagt's Larry so treffen: TMTOWTDI
grüße
Klaus