<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">diff --git c/t/madness_json.t w/t/madness_json.t
index 2272548..fafa00b 100644
--- c/t/madness_json.t
+++ w/t/madness_json.t
@@ -248,13 +248,14 @@ format STDOUT =
         JSB =&gt; $jstrue,
         );
 
+    my $expect;
     # Dumping differences per perl version:
     # 5.12.0+:
     #
     #   IO handles are now blessed into IO::File, I guess?
     #
     if ( $] &gt;= 5.012_000 ) {
-        my $expect = &lt;&lt;'EXPECT';
+        $expect = &lt;&lt;'EXPECT';
 $HASH1 = {
            AR  =&gt; [
                     1,
@@ -292,10 +293,9 @@ EXPECT
            ) !~ 'refs') {
             $expect =~ s/strict 'refs'/strict/;
         }
-        same( $dump= $o-&gt;Data(\%hash)-&gt;Out, template( $expect, expected_dot =&gt; $expected_dot ), "", $o);
     }
     elsif ( $] &gt;= 5.008_008 ) {
-        same( $dump= $o-&gt;Data(\%hash)-&gt;Out, template( &lt;&lt;'EXPECT', expected_dot =&gt; $expected_dot ), "", $o);
+        $expect = &lt;&lt;'EXPECT';
 $HASH1 = {
            AR  =&gt; [
                     1,
@@ -329,7 +329,7 @@ bless( $HASH1-&gt;{JSB}, 'JSON::XS::Boolean' );
 EXPECT
     }
     elsif ( $] &gt;= 5.008_000 ) {
-        same( $dump= $o-&gt;Data(\%hash)-&gt;Out, template( &lt;&lt;'EXPECT', expected_dot =&gt; $expected_dot ), "", $o);
+        $expect = &lt;&lt;'EXPECT';
 $HASH1 = {
            AR  =&gt; [
                     1,
@@ -363,7 +363,7 @@ bless( $HASH1-&gt;{JSB}, 'JSON::XS::Boolean' );
 EXPECT
     }
     else {
-        same( $dump= $o-&gt;Data(\%hash)-&gt;Out, template( &lt;&lt;'EXPECT', expected_dot =&gt; $expected_dot ), "", $o);
+        $expect = &lt;&lt;'EXPECT';
 $HASH1 = {
            AR  =&gt; [
                     1,
@@ -388,6 +388,11 @@ $HASH1 = {
 bless( $HASH1-&gt;{JSB}, 'JSON::XS::Boolean' );
 EXPECT
     }
+    # In JSON::XS &lt; 3, the boolean class is JSON::XS::Boolean
+    # In JSON::XS &gt;= 3, the boolean class is JSON::PP::Boolean
+    my $json_boolean_class = ref JSON::XS::decode_json("true");
+    $expect =~ s{JSON::XS::Boolean}{$json_boolean_class}g;
+    same( $dump= $o-&gt;Data(\%hash)-&gt;Out, template( $expect, expected_dot =&gt; $expected_dot ), "", $o);
 }
 
 sub template {
</pre></body></html>