Store independent task results in scalar slots before summarizing them.

Task Result Slots

task_result_slots.pl
use strict;
use warnings;

sub read_slot {
    my ($value) = @_;
    return $value + 10;
}

sub write_slot {
    my ($value) = @_;
    return $value * 3;
}

my $seed = ;
my $read_value = 0;
my $write_value = 0;

$read_value = read_slot($seed);
$write_value = write_slot($seed);
my $total = $read_value + $write_value;

print "read=$read_value\n";
print "write=$write_value\n";
print "total=$total\n";
use strict;
use warnings;

sub read_slot {
    my ($value) = @_;
    return $value + 10;
}

sub write_slot {
    my ($value) = @_;
    return $value * 3;
}

my $seed = ;
my $read_value = 0;
my $write_value = 0;

$read_value = read_slot($seed);
$write_value = write_slot($seed);
my $total = $read_value + $write_value;

print "read=$read_value\n";
print "write=$write_value\n";
print "total=$total\n";
use strict;
use warnings;

sub read_slot {
    my ($value) = @_;
    return $value + 10;
}

sub write_slot {
    my ($value) = @_;
    return $value * 3;
}

my $seed = ;
my $read_value = 0;
my $write_value = 0;

$read_value = read_slot($seed);
$write_value = write_slot($seed);
my $total = $read_value + $write_value;

print "read=$read_value\n";
print "write=$write_value\n";
print "total=$total\n";
task slots Separate result slots make replay easier to follow because each task updates its own scalar state.