Trace named Perl subroutine steps as one ordered replay panel.

Callback Step Panel

callback_step_panel.pl
use strict;
use warnings;

sub add_step {
    my ($value) = @_;
    return $value + 4;
}

sub double_step {
    my ($value) = @_;
    return $value * 2;
}

my $base = ;
my $first = add_step($base);
my $second = double_step($first);

print "base=$base\n";
print "first=$first\n";
print "second=$second\n";
use strict;
use warnings;

sub add_step {
    my ($value) = @_;
    return $value + 4;
}

sub double_step {
    my ($value) = @_;
    return $value * 2;
}

my $base = ;
my $first = add_step($base);
my $second = double_step($first);

print "base=$base\n";
print "first=$first\n";
print "second=$second\n";
use strict;
use warnings;

sub add_step {
    my ($value) = @_;
    return $value + 4;
}

sub double_step {
    my ($value) = @_;
    return $value * 2;
}

my $base = ;
my $first = add_step($base);
my $second = double_step($first);

print "base=$base\n";
print "first=$first\n";
print "second=$second\n";
callback step Named subroutines keep each transformation visible in replay while Perl stays in a single execution thread.