Hallo. Kyek, Andreas, VF-DE wrote:
Hallo,
Eine (hoffentlich) kleine Frage an die Perl-Experten hier:
Bin zwar kein Experte, aber...
folgendes kleines Stück perl-code:
--- cut here --- #!/usr/bin/perl
$pos=123456; open IN, "
Ergebnis:
--- cut here --- seek-Result=1 Aktpos=123456 seek-Result END=1 Aktpos=16308 -- cut here ---
Was geht hier vor? nach meiner Doku soll seek bei nicht gelingen ein RC=0 zurückgeben. Das File ist genau 16308 Bytes lang; ein seek auf Position 123456 dürfte doch gar nicht gehen, oder?
Doch. Schreib' dann mal in Datei und schau' Dir nachher die Datei an.
Wie kann man prüfen, ob ein seek funktioniert hat? Der RC scheint immer 1 zu sein und die Position mittels tell zu prüfen funktioniert auch nicht (wie man sieht).
Doch, funktioniert eigentlich wie geplant. Um das Ende einer Datei zu suchen gibt es ja die Möglichkeit von hinten zu suchen. Und nur um seek() einen Fehler produzieren zu lassen gibt es auch andere Möglichkeiten, z.B. könntest Du eine pipe oder /dev/null benutzen mit seek(), das dürfte m.E. nicht funktionieren. Arno
Andreas
PS: System ist einmal ein SuSE 9.2 mit perl-5.8.5. Es geht aber genauso wenig auf einer SUN mit perl 5.005.
-- IT-Service Lehmann al@its-lehmann.de Arno Lehmann http://www.its-lehmann.de