http://www.perlmonks.org?node_id=995831


in reply to Hex, Localtime and strings

Because the former is a numeric literal where the 0x prefix means something; the later is a string treated as a number which presumes base10 (which means it gives up when it sees a non-digit "x" and is numerically 0). You need to use oct to get the string value treated like it would be as a numeric literal.

The cake is a lie.
The cake is a lie.
The cake is a lie.