Thread Storable: Long integer size is not compatible (ARM) (10 answers)
Opened by mika at 2019-10-29 15:38

GwenDragon
 2019-10-29 16:16
#190826 #190826
User since
2005-01-17
14748 Artikel
Admin1
[Homepage]
user image
Hast du bei Storable alte Dateien?
https://perldoc.perl.org/Storable.html#64-bit-data-in-perl-5.6.0-and-5.6.1
What this means is that if you have data written by Storable 1.x running on perl 5.6.0 or 5.6.1 configured with 64 bit integers on Unix or Linux then by default this Storable will refuse to read it, giving the error Byte order is not compatible. If you have such data then you should set $Storable::interwork_56_64bit to a true value to make this Storable read and write files with the old header. You should also migrate your data, or any older perl you are communicating with, to this current version of Storable.

If you don't have data written with specific configuration of perl described above, then you do not and should not do anything. Don't set the flag - not only will Storable on an identically configured perl refuse to load them, but Storable a differently configured perl will load them believing them to be correct for it, and then may well fail or crash part way through reading them.


https://www.perlmonks.org/?node_id=1145536
Using Storable to transfer data between Perl installations is not really advisable in my opinion. You need to make sure that the Perl and Storable versions are identical and also that the flags used to compile Perl are identical. You also need to make sure to use nstore* instead of store everywhere (even though that shouldn't matter when moving between the same CPU platform).

Last edited: 2019-10-29 16:22:27 +0100 (CET)

View full thread Storable: Long integer size is not compatible (ARM)