|< 1 2 >| | 16 Einträge, 2 Seiten |
1
2
3
4
5
6
7
8
9
sub ... {
while (<DATA>) { ... Multiplikationen mit den DATA-Daten, etc ... }
}
1;
__DATA__
1.234;2.345;3.456
4.567;5.678;7.890
RalphFFM+2008-01-09 10:08:52--Kann es sein, daß das while (<DATA>) wenn es am Dateiende angekommen ist "nach oben" zurückspringt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
$ cat Foo.pm
package Foo;
sub data {
while (<DATA>) {
warn __PACKAGE__." <$_>\n";
}
}
1;
__DATA__
23
42
99
$ perl -wle'use Foo;
Foo::data()'
Foo <23
>
Foo <42
>
Foo <99
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#!/usr/bin/perl
while (<DATA>){
print "erster Durchlauf: $_";
}
seek (DATA,0,0);
while (<DATA>){
print "zweiter Durchlauf: $_";
}
__DATA__
1
2
3
4
5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
ralph@erde:/tmp$ ./test.pl
erster Durchlauf: 1
erster Durchlauf: 2
erster Durchlauf: 3
erster Durchlauf: 4
erster Durchlauf: 5
erster Durchlauf:
zweiter Durchlauf: #!/usr/bin/perl
zweiter Durchlauf: while (<DATA>){
zweiter Durchlauf: print "erster Durchlauf: $_";
zweiter Durchlauf: }
zweiter Durchlauf: seek (DATA,0,0);
zweiter Durchlauf: while (<DATA>){
zweiter Durchlauf: print "zweiter Durchlauf: $_";
zweiter Durchlauf: }
zweiter Durchlauf:
zweiter Durchlauf: __DATA__
zweiter Durchlauf: 1
zweiter Durchlauf: 2
zweiter Durchlauf: 3
zweiter Durchlauf: 4
zweiter Durchlauf: 5
zweiter Durchlauf:
1 2 3 4 5
use Fcntl qw/ :seek /; my $pos = tell DATA; # erster durchlauf seek DATA, $pos, SEEK_SET; # immer die konstanten benutzen! # zweiter durchlauf
while (<DATA>) { ... }
while (my $line = <DATA>) { ... }
RalphFFM+2008-01-11 09:27:27--Ich weiß aber auch, daß voreilige Performanceoptimierung m.W. i.A. ein Fehler ist
solange man die Perl-Compilierungs-Interna nicht so gut wie seine Hosentasche
kennt. (-> Frage: Seht ihr das eigentlich genauso?)
Daher werde ich wohl erstmal mit den anderen Programmteilen weitermachen.
(Kann also sein, daß ich das letztlich anders lösen muß.)
|< 1 2 >| | 16 Einträge, 2 Seiten |