given (1)
####
>perl -MO=Concise -e"my $data = 1; print $data;"
a <@> leave[1 ref] vKP/REFC ->(end)
1 <0> enter ->2
2 <;> nextstate(main 1 -e:1) v ->3
5 <2> sassign vKS/2 ->6
3 <$> const[IV 1] s ->4
4 <0> padsv[$data:1,2] sRM*/LVINTRO ->5
6 <;> nextstate(main 2 -e:1) v ->7
9 <@> print vK ->a
7 <0> pushmark s ->8
8 <0> padsv[$data:1,2] l ->9 <-- It uses the lexical,
-e syntax OK not a constant.
>perl -MO=Concise -e"print 1;"
6 <@> leave[1 ref] vKP/REFC ->(end)
1 <0> enter ->2
2 <;> nextstate(main 1 -e:1) v ->3
5 <@> print vK ->6
3 <0> pushmark s ->4
4 <$> const[IV 1] s ->5 <-- This is a constant.
-e syntax OK
##
##
>perl -MO=Concise -e"my $data = 1; if ($data) { print 'moo' }"
c <@> leave[1 ref] vKP/REFC ->(end)
1 <0> enter ->2
2 <;> nextstate(main 1 -e:1) v ->3
5 <2> sassign vKS/2 ->6
3 <$> const[IV 1] s ->4
4 <0> padsv[$data:1,4] sRM*/LVINTRO ->5
6 <;> nextstate(main 4 -e:1) v ->7
- <1> null vK/1 ->c
8 <|> and(other->9) vK/1 ->c <-- "if" not optimized away.
7 <0> padsv[$data:1,4] s ->8 <-- Lex not optimized away.
- <@> scope vK ->-
- <0> ex-nextstate v ->9
b <@> print vK ->c
9 <0> pushmark s ->a
a <$> const[PV "moo"] s ->b
-e syntax OK
>perl -MO=Concise -e"if (1) { print 'moo' }"
6 <@> leave[1 ref] vKP/REFC ->(end)
1 <0> enter ->2
2 <;> nextstate(main 3 -e:1) v ->3
- <@> scope vK ->6 <-- "if" optimized away.
- <0> ex-nextstate v ->3
5 <@> print vK ->6
3 <0> pushmark s ->4
4 <$> const[PV "moo"] s ->5
-e syntax OK