in reply to Getting Time to work

This probably means you are passing garbage to get_seconds, and it just so happens that $day is the first thing that is checked by timelocal. You appear (at least in this snippet) to be calling get_seconds without any arguments, although, since you are using the & hack to call it, I really can't be sure. More proof that & is evil.

The month_num hash is pretty cute, but the value of $month is usually meant to be used as an offset into an array. So you would write something like:

$mon = (qw/Jan Feb Mar ... Nov Dec/)[$mon];

In those other cases where you really do need a hash as you have it here, enclose both the hash and the sub that accesses it in curly brackets. That way you reduce the scope of the hash, and it can't be modified (read: trashed) by something else by accident.


print@_{sort keys %_},$/if%_=split//,'= & *a?b:e\f/h^h!j+n,o@o;r$s-t%t#u'