in reply to 'use integer;', or Manipulating 64-bit values, revisited

The bitwise noop 0 | $foo normally forces unsignedness, but use integer; interferes with that, too.The no integer; pragma has lexical scope, so you can wrap it up in a bareblock with the unsigned operations.

perl -Minteger -e'my $foo = 2**63-1 ; $foo = 2*$foo;print $foo,$/; { n +o integer; print 0|$foo,$/;}' -2 18446744073709551614

After Compline,
Zaxo