Thread testcase schlägt fehl (36 answers)
Opened by GwenDragon at 2017-07-19 21:24

rosti
 2017-07-20 13:44
#186974 #186974
User since
2011-03-19
3194 Artikel
BenutzerIn
[Homepage]
user image
2017-07-20T10:00:54 GwenDragon
Mein Fehler war: Ich habe vergessen vor dem Einlesen lokal $/ auf undef zu setzen.


Nein. Dein Fehler ist, eine Binärdatei wie eine Textdatei zu lesen. So ist das Setzen $/ = undef; unsinnig wenn es um Binärdaten geht. Des Weiteren kann es unter Win32 passieren, dass die Datei bereits beim Öffnen gekürzt wird, weil Win32 die Datei als Textdatei betrachtet und bestimmte Bytesequenzen wie z.B. A0 am Dateiende einfach entfernt. Deswegen meine Empfehlung für IO::File womit bereits O_BINARY in der open() gesetzt wird.

IO::File importiert diese Konstanten wie O_RDWR|O_TRUNC|O_BINARY automatisch sofern Du den Import nicht unterdrückst. MfG

Edit: Da $sereal->looks_like_sereal($data) eine kaputte Binary nicht erkennt sondern gleich eine Exception wirft betrachte ich als Fehler im Modul Sereal. Man könnte das auch als Bug melden.
Last edited: 2017-07-20 13:49:18 +0200 (CEST)

View full thread testcase schlägt fehl