my $hex= "FFAA"; my $signed= unpack "s", pack "S", unpack "v", pack "H*", $hex; #### my $hex= "ABC"; my $unsigned= unpack "V", pack "h*", "".reverse "00000000".$hex; my $signed= unpack "l", pack "L", unpack "V", pack "h*", "".reverse( ( $hex=~/^[89a-f]/i ? "F" : "0" ) x 8 . $hex );