sub Data {
my ($filename) = @_;
my @data = eval {
- do "$filename.inc.pl";
+ open my $cache, '<:raw', "data/$filename.json"
+ or return do "./$filename.inc.pl"; # silent fallback to original code
+ require JSON;
+ local $/; # slurp
+ return JSON::decode_json(readline $cache);
};
if ($! or $@ or !@data or !$data[0]) {
die ['Table data not found', $@ || $!];