Note that both "<<" and ">>" in Perl are implemented directly using "<<" and ">>" in C. If "use integer" (see "Integer Arithmetic") is in force then signed C integers are used, else unsigned C integers are used. Either way, the implementation isn't going to generate results larger than the size of the integer type Perl was built with (32 bits or 64 bits).The result of overflowing the range of the integers is undefined because it is undefined also in C. In other words, using 32-bit integers, "1 << 32" is undefined. Shifting by a negative number of bits is also undefined.
In reply to Re: behavior of bitwise shift
by Roy Johnson
in thread behavior of bitwise shift
by ngiordano
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |