use Math::BigInt; my $switchPortNumber = 2; # 32 Character hex string from switch my $hexstring = Math::BigInt->new('0x40000000000000000000000000000000'); my $mask = (Math::BigInt->new('0x80000000000000000000000000000000') >> $switchPortNumber); my $result = ($hexstring & $mask) > 0; #### my $bitstring = unpack('B*', pack('H*', '40000000000000000000000000000000')); my $result = substr($bitstring, $switchPortNumber, 1) eq '1';