sub cool { my $return = pop; # get cps value my $p1 = shift; my $p2 = shift; ... ... if ($condition) { @_ = ($new, $arg, $new_return); goto &$return; } }