============================= ** BACKWARD INCOMPATIBILITY ** Since version 2.90, stringification (and string comparison) for JSON::true and JSON::false has not been overloaded. It shouldn't matter as long as you treat them as boolean values, but a code that expects they are stringified as "true" or "false" doesn't work as you have expected any more. if (JSON::true eq 'true') { # now fails print "The result is 1 now."; # => The result is 1 now. And now these boolean values don't inherit JSON::Boolean, either. When you need to test a value is a JSON boolean value or not, use JSON::is_bool function, instead of testing the value inherits a particular boolean class or not.