>type test.pl && perl -MO=Concise,-exec test.pl 2>&1 | find "proto" sub with_proto() { 4 } sub without_proto { 4 } with_proto(); without_proto(); <---- Note absence of "with_proto" 5 <#> gv[*without_proto] s <---- Not constant #### >type test.pl && perl -MO=Concise,-exec test.pl 2>&1 | find "proto" sub with_proto() { my $lex } sub without_proto { my $lex } with_proto(); without_proto(); 4 <#> gv[*with_proto] s <---- Not constant 8 <#> gv[*without_proto] s <---- Not constant >type test.pl && perl -MO=Concise,-exec test.pl 2>&1 | find "proto" my $lex = 4; sub with_proto() { $lex } sub without_proto { $lex } with_proto(); without_proto(); 8 <#> gv[*with_proto] s <---- Not constant c <#> gv[*without_proto] s <---- Not constant >type test.pl && perl -MO=Concise,-exec test.pl 2>&1 | find "proto" { my $lex = 4; sub with_proto() { $lex } } { my $lex = 4; sub without_proto { $lex } } with_proto(); without_proto(); i <#> gv[*with_proto] s <---- Not constant m <#> gv[*without_proto] s <---- Not constant #### >type test.pl && perl -MO=Concise,-exec test.pl 2>&1 | find "proto" sub with_proto() { \my $lex } sub without_proto { \my $lex } with_proto(); without_proto(); 4 <#> gv[*with_proto] s <---- Not constant 8 <#> gv[*without_proto] s <---- Not constant >type test.pl && perl -MO=Concise,-exec test.pl 2>&1 | find "proto" my $lex = 4; sub with_proto() { \$lex } sub without_proto { \$lex } with_proto(); without_proto(); 8 <#> gv[*with_proto] s <---- Not constant c <#> gv[*without_proto] s <---- Not constant >type test.pl && perl -MO=Concise,-exec test.pl 2>&1 | find "proto" { my $lex = 4; sub with_proto() { \$lex } } { my $lex = 4; sub without_proto { \$lex } } with_proto(); without_proto(); i <#> gv[*with_proto] s <---- Not constant m <#> gv[*without_proto] s <---- Not constant #### >type test.pl && perl -MO=Concise,-exec test.pl 2>&1 | find "proto" sub with_proto() :lvalue { my $lex } sub without_proto :lvalue { my $lex } with_proto(); without_proto(); 4 <#> gv[*with_proto] s 8 <#> gv[*without_proto] s >type test.pl && perl -MO=Concise,-exec test.pl 2>&1 | find "proto" my $lex = 4; sub with_proto() :lvalue { $lex } sub without_proto :lvalue { $lex } with_proto(); without_proto(); 8 <#> gv[*with_proto] s c <#> gv[*without_proto] s >type test.pl && perl -MO=Concise,-exec test.pl 2>&1 | find "proto" { my $lex = 4; sub with_proto() :lvalue { $lex } } { my $lex = 4; sub without_proto :lvalue { $lex } } with_proto(); without_proto(); i <#> gv[*with_proto] s m <#> gv[*without_proto] s