http://qs321.pair.com?node_id=712783


in reply to Negation Error

I have version 0.4304 of DateTime (the latest). In that version, line 1651 is the return from _compare_overload:
sub _compare_overload { # note: $_[1]->compare( $_[0] ) is an error when $_[1] is not a # DateTime (such as the INFINITY value) return $_[2] ? - $_[0]->compare( $_[1] ) : $_[0]->compare( $_[1] ) +; }
_compare_overload is overloaded to <=> and cmp for DateTime objects. So a good place to start tracking this down would be any place you compare DateTime objects (recognizing that the offending call/comparison may be coming from some other module that you are using).

Replies are listed 'Best First'.
Re^2: Negation Error
by Herkum (Parson) on Sep 21, 2008 at 01:13 UTC

    OK, that is bizarre, considering I don't see it anywhere else in my application, but at least you pointed something to look at.

    The issue is that I take Date/Time from a database and cast all the rows as DateTime objects. So when I see a generic error like this, it makes me nervous as hell because I have no idea where to start because I am not doing anything special on the web server.

    Poking around for DT comparisons, that I can do. I certainly hope it is not in something that I did not write. :)

      Do you sort DateTime objects? The default sorter is $a cmp $b.

        I was going to say no, but then I realized I do some sorting of dates on the web site. I am also using Template Toolkit so it might contribute to the problem also(based upon the type of sorting I am doing).