my $buf = pack "FFFFL", (0.1) x 4, 999; for (1..1000_000) { my @row = unpack "FFFFL", $buf; } __END__ $ time ./836298.pl real 0m1.286s user 0m1.280s sys 0m0.004s