diff --git a/website/agenda/aggregate.cgi b/website/agenda/aggregate.cgi index 9a13cd7..b78d49a 100755 --- a/website/agenda/aggregate.cgi +++ b/website/agenda/aggregate.cgi @@ -4,6 +4,7 @@ use strict; use warnings; no warnings 'redefine'; use utf8; +use feature 'state'; use config(); use params(); @@ -126,10 +127,14 @@ s/\<\;span id\="\;calcms_title"\;\>\;[^\&]*\<\;\/span\>\;/\{$filename}; + return $cached->{content} if defined $cached and $cached->{updated} > time - 60; open my $fh, '<:utf8', $filename or return qq{cannot load '$filename'}; local $/ = undef; my $content = <$fh>; close $fh or return qq{cannot load '$filename'}; + $cache->{$filename} = {updated => time, content => $content}; return $content; }