use strict; use warnings ; use constant HOMBURG => 'HA' ; my %bar = (homburg => 'homburg!', HOMBURG => 'HomBurg!', HOMBURG, 'Ha!') ; print join(', ', %bar), "\n" ; my $k = HOMBURG ; print "\$k = HOMBURG -> \$k=$k\n" ; print "\$bar{homburg}=$bar{ homburg }, \$bar{HOMBURG}=$bar{HOMBURG}, ", "\$bar{\$k}=$bar{$k}, \$bar{+HOMBURG}=$bar{+HOMBURG}\n" ; #### my $w = '0001' ; my $x = 'zlqq' ; my $y = '-zlxq' ; my $z = '+zlxq' ; print " \$w=$w, \$x=$x, \$y=$y, \$z=$z\n" ; print "+\$w=", +$w, ", +\$x=", +$x, ", +\$y=", +$y, ", +\$z=", +$z,"\n" ; print "-\$w=", -$w, ", -\$x=", -$x, ", -\$y=", -$y, ", -\$z=", -$z, "\n" ; #### use strict; use warnings ; use constant HOMBURG => 'HA' ; print "-HOMBURG=", -HOMBURG, ", -foo=", -foo, "\n" ; #### my $x = '0x1234' ; my $y = 0x1234 ; printf "\$x=%s, ~\$x=%s\n", show($x), show(~$x) ; printf "\$y=0x%X, ~\$y=0x%X\n", $y, ~$y ; printf "hex(\$x)=0x%X, ~\hex($x)=0x%X\n", hex($x), ~hex($x) ; printf "\$y=%s,\n ~\$y=%s\n", show($y), show(~$y) ; sub show { return '"'. join('', map { sprintf('\\x%02X', ord($_)) } split(//, $_[0])) .'"' ; } ; #### use strict; use warnings ; my $z = ; printf "\$z=%s, ~\$z=%s\n", show($z), show(~$z) ; sub show { return '"'. join('', map { sprintf('\\x%02X', ord($_)) } split(//, $_[0])) .'"' ; } ; __DATA__ 0x1234 #### use strict; use warnings ; foreach my $z ('0', '0000', '+0', '-0', ' 0', '0 ', '0E0') { try($z) ; } ; sub try { my ($z) = @_ ; my $bool = $z ? 'True' : 'False' ; my $zero = $z == 0 ? '==' : '!=' ; printf "%7s is %5s and %2s 0\n", "'$z'", $bool, $zero ; } ;