sub rec_helper { my %state; my $recursive; $recursive = sub { my( $arg ) = shift; ... if( ( $arg = $state{ $arg ) ) == ... ) { return $recursive->( $arg ); } else { return 0; } }; }