latin: prefer cached json of static data include
[sheet.git] / common.inc.plp
index 39865bdb55f2ca961da6d7f0ebcaecbc760aab9a..afec9d11f2172bb2130301eaf7468422a86020a2 100644 (file)
@@ -102,7 +102,11 @@ sub checkmodified {
 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', $@ || $!];