in reply to Hex, Localtime and strings

Because the first example uses a hex representation of an integer, and the second example uses a string of characters that happen to include a 0x and some stuff that looks (to a human) hex-ish (but not to Perl). Perl converts that string to a number following Perl's numerification of a string rules, which in this case results in a '0'.

use strict; use warnings; use diagnostics; my $daTime = "0x506143ca"; print scalar localtime $daTime, "\n";

...the output...

Argument "0x506143ca" isn't numeric in localtime at mytest.pl line 10 +(#1) (W numeric) The indicated string was fed as an argument to an oper +ator that expected a numeric value instead. If you're fortunate the me +ssage will identify which operator was so unfortunate. Wed Dec 31 16:00:00 1969

As for the "Wed Dec 31 16:00:00 1969": perl -E 'say localtime 0' will yield the same result.


Dave

Replies are listed 'Best First'.
Re^2: Hex, Localtime and strings
by theneil (Novice) on Sep 26, 2012 at 17:25 UTC
    Thank you guys! Worked like a charm! I'm slowly learning :)

      I know this is late, but I'll share what worked for me!

      $hexval = hex '51C07405'; print scalar(localtime($hexval));