in reply to Network IEEE 754 to Native Floats: which pack/unpack ops better?

The reason the middle one:
$float = unpack "f", pack "N", unpack "V", $data;
feels wrong is probably because it is wrong. You have a network-order value that you need to convert to host-order value; I'll explain this backwards, as that's how perl has to process it.
unpack "V", $data;
This treats the data as if it were in Little-endian order (which is it is not) and turns it into a 32-bit integer.
pack "N", $data;
This packs the data into a string in Big-endian (network) order. This is also wrong, because you now are using it on a little-endian machine.

This is one of those few cases where two wrongs *do* make a right; these operations are done in the wrong order, but the net effect is the same (which is why it works).

Your last suggestion,

pack 'L', unpack 'N', $data
is the most correct version. The unpack('N') unpacks the number as if it were a 32-bit value in network byte order (which it is), and the pack('L') re-packs the number as a 32-bit value in host byte order (which it is).