dynsub uc $cmd, sub { say "Arguments to \U$cmd: ", join ', ', @_; $redis->$cmd(@_) };
}
dynsub uc $cmd, sub { say "Arguments to \U$cmd: ", join ', ', @_; $redis->$cmd(@_) };
}
sub jobcard () { GET cp . 'job' }
sub job_results (_) { decode_json HGET cp . "job.$_[0]", 'results' }
sub jobcard () { GET cp . 'job' }
sub job_results (_) { decode_json HGET cp . "job.$_[0]", 'results' }
defhash problem => qw/name level statement/;
defhash contest => qw/start end name owner/;
defhash job => qw/date extension filesize private problem result result_text user/;
defhash problem => qw/name level statement/;
defhash contest => qw/start end name owner/;
defhash job => qw/date extension filesize private problem result result_text user/;