In the hope of clearing some (potential) confusion here... I think
becca23 is referring to
Time::localtime (which is where
ctime is defined), which is of course not the same as
localtime. Nevertheless, using your one-liner, I get the same answer with both functions (which is a GoodThing).
$ ls -l xyz.txt
-rw-rw-r-- 1 x x 0 Jul 30 12:22 xyz.txt
$ perl -le 'use Time::localtime; print ctime((stat)[9]) for @ARGV' xyz
+.txt
Wed Jul 30 12:22:28 2008
$ perl -le 'print scalar localtime((stat)[9]) for @ARGV' xyz.txt
Wed Jul 30 12:22:28 2008
...
still suspecting a time zone issue, but puzzled/worried by the 47 minute discrepancy, to say nothing of the approx 5 month discrepancy that comes with it...