in reply to Re^2: 64 bit perl
in thread 64 bit perl

$/ is just a newline by default. It's there to break the line and set the next shell prompt back to the far left of the screen.

On 32-bit perl,

$ perl -e'print 1<<$_, $/ for 28..36' 268435456 536870912 1073741824 2147483648 1 2 4 8 16 $
Perl 1<<$n is equivalent to 2**$n, not 2**($n+1). The << operator is regarded as bitwise by perl, so forces the result into a bitfield, an unsigned int. As in C, an overflowed int wraps to its low bits[What was I thinking there?]. On 64-bit perl, the above gives,
$ perl -e'print 1<<$_, $/ for 28..36' 268435456 536870912 1073741824 2147483648 4294967296 8589934592 17179869184 34359738368 68719476736 $
For both 32- and 64-bit Perl, 1<<64 == 1.

After Compline,
Zaxo

Replies are listed 'Best First'.
Re^4: 64 bit perl
by ambrus (Abbot) on Jun 05, 2005 at 14:43 UTC
    For both 32- and 64-bit Perl, 1<<64 == 1.

    1<<64 is the same as in C, but is that always 1? I'd think it's system-dependent, but I'm not really sure.