use v6;
say "1..2";
#
# $was_in_second_end_block is a package variable, not a lexical one, per S04:
#
# Some closures produce C<Code> objects at compile time that cannot be
# cloned, because they're not attached to any runtime code that can
# actually clone them. C<BEGIN>, C<CHECK>, C<INIT>, and C<END> blocks
# fall into this category... It's only safe to refer to package
# variables and file-scoped lexicals from such a routine.
#
$Main::was_in_second_end_block = 0;
END {
if $Main::was_in_second_end_block {
say "ok 2";
} else {
say "not ok 2";
}
}
END {
$Main::was_in_second_end_block = 1;
say "ok 1";
}