Thread testcase schlägt fehl
(36 answers)
Opened by GwenDragon at 2017-07-19 21:24
:doh: der <FH> ist ja ein Operator für Textstreams. OK.
Warum kann man dann bloß sowas machen, wenn es unsinnig ist binmode und $/ zu nutzen: Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 use 5.020; use Fcntl; use strict; use warnings; my $file_name = 'C:\Windows\notepad.exe'; my $size = -s $file_name; my ($data_open, $data_sysopen); { open my $fh1, '<', $file_name; binmode $fh1; local $/; $data_open = <$fh1>; close $fh1; } { sysopen my $fh2, $file_name, O_RDONLY; binmode $fh2; read ($fh2, $data_sysopen, $size); } say "Groesse: ", $size; say "Laenge gleich: ", length($data_open), ' | ' , length($data_sysopen); say "Daten ", $data_open ne $data_sysopen ? 'ungleich' : 'gleich'; Groesse: 246784 Laenge gleich: 246784 | 246784 Daten gleich Ich würde gern verstehen warum das klappt, obwohl es nicht sinnvoll ist. Oder macht perl da im Hintergrund weider irgendwas magisches, dass es klappt? Ich kenne Perls Interna ja nicht so genau. Last edited: 2017-07-20 15:43:33 +0200 (CEST) |