URI::Fetch で Cache Hit すると http_response が取れない

decoded_content が欲しかったので

$res = URI::Fetch->fetch( $uri, Cache => $cache );
$res->http_response->decoded_content;

ってしたのだが、Cache にヒットすると http_response が空っぽ。
Cache に書き込む部分は以下のようになっていて、http_response は保存していないから。

        $cache->set($fetch->uri, $freeze->({
            ETag         => $fetch->etag,
            LastModified => $fetch->last_modified,
            Content      => $fetch->content,
            CacheTime    => time(),
            ContentType  => $fetch->content_type,
        }));

ContentAlterHook でどうにかなるかと思ったが、hook のサブルーチンには content の中身しか渡ってこないので、ちょっと難しい。$fetch も渡してくれればよかったのだが……