use strict; use warnings; #integer 32 bit { my $a = 1; print "a = $a\n"; #a: 00000001, ~ - fffffffe print 0xfffffffe, "\n"; print "~a = ", ~$a, "\n"; } #string { my $a = "abcd"; (my $a_ord = $a) =~ s/(.)/sprintf "%02x", ord $1/ge; print "a = $a\n"; print "a_ord = $a_ord\n"; #a: 97, hex - 61, ~ - 9e #b: 98, hex - 62, ~ - 9d #c: 99, hex - 63, ~ - 9c #d: 100, hex - 64, ~ - 9b my $b = ~$a; (my $b_ord = $b) =~ s/(.)/sprintf "%02x", ord $1/ge; print "b_ord = $b_ord\n"; }