Thread while-schleifen-problem (2 answers)
Opened by Annka at 2006-07-20 10:56

renee
 2006-07-20 11:23
#68277 #68277
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Wenn Du einmal durch die Datei gegangen bist, bist Du am Ende der Datei angelangt. Entweder musst Du wieder an den Dateianfang springen oder Du liest erstmal alles in ein Array ein oder Du verwendest CPAN:Tie::File

Zurueckspringen:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#!/usr/bin/perl

use strict;
use warnings;

my $file = 'whiletest.txt';
open(my $fh,"<",$file) or die $!;

for(0..3){
while(my $line = <$fh>){
print $line;
}
seek $fh,0,0;
}

close $fh;


Das entscheidende ist das seek.


Erst in ein Array lesen:

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#!/usr/bin/perl

use strict;
use warnings;

my $file = 'whiletest.txt';
open(my $fh,"<",$file) or die $!;
my @lines = <$fh>;
close $fh;

for(0..3){
for my $line(@lines){
print $line;
}
}


Mit CPAN:Tie::File:

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#!/usr/bin/perl

use strict;
use warnings;
use Tie::File;

my $file = 'whiletest.txt';
tie my @lines,"Tie::File",$file or die $!;
for(0..3){
for my $line(@lines){
print $line,"\n";
}
}
untie @lines;
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/

View full thread while-schleifen-problem