use bytes; Für jedes Array-Element erzeuge 4 Bytes mit der Längenangabe, z.B. so pack 'N', length($elem); dann hänge das Element selbst hintendran. Also: $bin .= pack('N', length($elem)).$elem; Zum Wiederherstellen des Arrays lese aus dem Handle im Schleifenkörper 4 Bytes, so bekommst Du mit unpack 'N', $buffer die Original-Länge des folgenden Array-Elements nun lese mit der ermittelten Längenangabe das Element selbst aus dem Handle # Handle == Socket