nfreeze#
Serialise a referenced Perl structure to bytes in network (big-endian) byte order for portable transport.
Σύνοψη#
use Storable qw(nfreeze thaw);
my $bytes = nfreeze(\@rows);
my $back = thaw($bytes); # thaw auto-detects byte order
Τι επιστρέφεται#
An opaque byte string prefixed with a marker that identifies the payload as network-order. The reader (thaw, retrieve, fd_retrieve) inspects that marker and byte-swaps as needed, so the same bytes reproduce the structure on any architecture.
Παραδείγματα#
Send serialised data over a socket between hosts of different endianness:
my $bytes = nfreeze(\%payload);
$socket->send($bytes);
## on the other side, possibly on a different CPU:
my $payload = thaw($received);
Store and retrieve using the portable pair:
open my $fh, ">", "data.bin" or die $!;
print $fh nfreeze(\@records);
close $fh;
Οριακές περιπτώσεις#
Argument must be a reference; a plain scalar croaks with
Not a reference.Marginally slower than
freezeon little-endian hosts because every multi-byte field is byte-swapped on the way out.The produced bytes differ from those of
freezeeven when run on a big-endian host, becausenfreezewrites a leading marker byte.
Διαφορές από το upstream#
Byte layout is not wire-compatible with upstream Storable’s network format.
nfreezeoutput round-trips only through pperl’sthaw. Pinned byt/81-xs-native/Storable/270-nfreeze-byteorder.t.
Δείτε επίσης#
freeze- faster, same-architecture variant.thaw- matching reader; auto-detects byte order.nstore- write portable bytes directly to a file.nstore_fd- write portable bytes to a file descriptor.