The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
## name Basic passing
## failures 0
## cut

sub foo { my $bar = sub { 1 } }
sub foo { } sub bar { }

#-----------------------------------------------------------------------------

## name Basic failure
## failures 2
## cut

sub foo { sub bar { 1 } }
sub foo { if (1) { do { sub bar { 1 } } } }

#-----------------------------------------------------------------------------

## name Subroutine declarations inside scheduled blocks used for lexical scope restriction.
## failures 0
## cut

CHECK {
    my $foo = 1;

    sub bar { return $foo }
}

#-----------------------------------------------------------------------------

## name Scheduled blocks inside subroutine declarations.
## failures 0
## cut

sub quack {
    state $foo;

    UNITCHECK {
        $foo = 1;
    }
}

#-----------------------------------------------------------------------------

## name Subroutine declarations inside scheduled blocks inside subroutine declarations.
## failures 1
## cut

sub quack {
    INIT {
        my $foo = 1;

        sub bar { return $foo }
    }
}

#-----------------------------------------------------------------------------
# Local Variables:
#   mode: cperl
#   cperl-indent-level: 4
#   fill-column: 78
#   indent-tabs-mode: nil
#   c-indentation-style: bsd
# End:
# ex: set ts=8 sts=4 sw=4 tw=78 ft=perl expandtab shiftround :