Langsam, step by step, ohne Schnickschnack.
aber mit 1 2 unzulänglichkeiten.
[code lang=perl]open(DATEI, "<source_datei.dat");
Fragst du nicht ab ob das open gelungen ist?
Das sollte man immer tun.
open(DATEI, "<source_datei.dat") || die "Kann Datei nicht öffnen: $!";
while(<DATEI>) { push(@liste1,$_); }
Das ist Unsinn, in zweierlei hinsicht.
Einmal würde es einfacher so gehen: @liste = <DATEI> anderseits ist davon aber dringend abzuraten vor allem wenn die Datei gross ist
$schalter;
Wo ist das my? Du verwendest kein use strict?
foreach $zeile1 (@liste1)
{
Selbst wenn man es so machen wollte, wäre für sowas kurzes ausreichend $_ zu verwenden.
if ($zeile1 =~ /1.\0000000/) { $schalter=1; }
if ($zeile1 =~ /0.\0000000/) { $schalter=0; }
if ($schalter eq 1) { push(@liste2,$zeile); }
mal abgesehen vom der falschen Variabel (mit use strict wäre das nicht passiert)
eq ist ein Sringvergleich, da aber der schalter nur true oder false sein kann reicht ein einfaches if($schalter) ...
Aber eine u.U. riesige Datei in zwei Array zwischen zu lagern ist mehr als ineffizient.
print DATEI"$zeile2\n";
Da du weiter oben kein chomp benutzt hast du jetzt zwischen jeder Zeile eine Leerzeile.
Alles in allem ein ziemlich mißlungener Versuch.
Struppi.
Javascript ist toll (Perl auch!)