Thread Grosse Dateien öffnen: Ohne TIE::File ? (23 answers)
Opened by Free Faq at 2004-08-12 22:06

Ishka
 2004-08-13 04:42
#85742 #85742
User since
2003-08-04
771 Artikel
HausmeisterIn
[Homepage] [default_avatar]
[E|B
,12.08.2004, 22:17]
Quote
Nebenbei: wenn du die Datei zeilenweise bearbeiten willst, dann die datei nicht mit foreach (<FH>) durchackern, sondern besser mit while (<FH>)...


Wo liegt da genau der Unterschied?

foreach (<FH>) liest die ganze Datei in ein Array und geht dann das Array Elementweise durch, weist das aktuelle Element immer $_ durch. Nachteil: Die ganze Datei muß gleichzeitig im Speicher behalten werden.

while (<FH>) liest die Datei Zeilenweise und speichert die aktuelle Zeile in $_, Eigentlich liest es die Datei immer blockweise, schreibt aber nur die aktuelle Zeile in $_. Nachteil: Aufgrund eines Bugs ist zumindestens bis 5.6 danach $_ leer ;)
sub z{if(@_){1while$x[$k=rand 10];t($t=$x[$k]=1)}print map"$z[$x[$_]]$_".($_%3?
"":"\n"),1..9}sub t{$j=0;$x[$_+1]==$t&&($j+=2**$_)for 0..8;z,die"Gewinner $z[$t]
"if grep$_==($j&$_),7,56,73,84,146,273,292,448;z,die"Gleichstand\n"if@x>9&&!grep
!$_,@x}@x=4;@z=qw{. [ (};z$^T&1;while(<>){next if$_>9||$x[$_];t$t=$x[$_]=2;z 1}

View full thread Grosse Dateien öffnen: Ohne TIE::File ?