%jobstats = ( total_jobs => 0, successful_jobs => 0, partially_successful_jobs => 0, failed_jobs => 0, jobs_started_in_window => 0, jobs_ended_in_window => 0, jobs_active_in_window => 0, retried_jobs => 0 ); %jobs = bpdbjobs($code); tie %jobstats, "Tie::IxHash"; $jobstats{total_jobs} = keys %jobs; foreach $jobid ( keys %jobs ) { my $job = $jobs{$jobid}; next if $job->{status} == 150; ++$jobstats{successful_jobs} if $job->{status} == 0; ++$jobstats{partially_successful_jobs} if $job->{status} == 1; ++$jobstats{failed_jobs} if $job->{status} > 1; ++$jobstats{jobs_started_in_window} if ( $job->{started} >= $START_SECONDS ) && ( $job->{started} <= $END_SECONDS ); ++$jobstats{jobs_ended_in_window} if ( $job->{ended} >= $START_SECONDS ) && ( $job->{ended} <= $END_SECONDS ); ++$jobstats{jobs_active_in_window} if ( ( $job->{started} + $job->{duration} ) >= $START_SECONDS ) && ( ( $job->{started} + $job->{duration} ) <= $END_SECONDS ); ++$jobstats{retried_jobs} if $job->{trycount} > 1; }