1{20}use{0} {16}v6{18};{0}
2
3{2}# Normal single line comment{0}
4{20}my{0} {22}Int{0} {23}$i{0} {18}={0} {16}0{18};{0}
5{20}my{0} {22}Rat{0} {23}$r{0} {18}={0} {16}3.142{18};{0}
6{20}my{0} {22}Str{0} {23}$s{0} {18}={0} {8}"Hello, world! \$i == {12}$i{8} and \$r == {12}$r{8}"{18};{0}
7{20}say{0} {23}$s{18};{0}
8
9{2}#`{3}{{
10*** This is a multi-line comment ***
11}}{0}
12
13{20}my{0} {24}@array{0} {18}={0} {2}#`{3}[[ inline comment ]]{0} {9}<f fo foo food>{18};{0}
14{20}my{0} {25}%hash{0} {18}={0} {18}({0} {21}AAA{0} {18}=>{0} {16}1{18},{0} {21}BBB{0} {18}=>{0} {16}2{0} {18});{0}
15
16{20}say{0} {9}q[This back\slash stays]{18};{0}
17{20}say{0} {9}q[This back\\slash stays]{18};{0} {2}# Identical output{0}
18{20}say{0} {11}Q{15}:q{11}!Just a literal "\n" here!{18};{0}
19
20{4}=begin pod
21POD Documentation...
22=end pod{0}
23
24{20}say{0} {10}qq{15}:to{10}/END/{18};{0}
25{7}A multi-line
26string with interpolated vars: {12}$i{7}, {12}$r{7}
27END{0}
28
29{20}sub{0} {21}function{0} {18}{{0}
30	{20}return{0} {9}q{15}:to{9}/END/{18};{0}
31{6}Here is
32some multi-line
33string
34END{0}
35{18}}{0}
36
37{20}my{0} {23}$func{0} {18}={0} {26}&function{18};{0}
38{20}say{0} {23}$func{18}();{0}
39
40{19}grammar{0} {27}Calculator{0} {18}{{0}
41	{19}token{0} {21}TOP{0}					{13}{ <calc-op> }{0}
42	{19}proto{0} {19}rule{0} {21}calc-op{0}			{13}{*}{0}
43		  {19}rule{0} {21}calc-op{15}:sym{18}<{21}add{18}>{0}	{13}{ <num> '+' <num> }{0}
44		  {19}rule{0} {21}calc-op{15}:sym{18}<{21}sub{18}>{0}	{13}{ <num> '-' <num> }{0}
45    {19}token{0} {21}num{0}					{13}{ \d+ }{0}
46{18}}{0}
47
48{19}class{0} {28}Calculations{0} {18}{{0}
49	{19}method{0} {21}TOP{0}              {18}({23}$/{18}){0} {18}{{0} {19}make{0} {23}${18}<{23}calc-op{18}>.{21}made{18};{0} {18}}{0}
50	{19}method{0} {21}calc-op{15}:sym{18}<{21}add{18}>{0} {18}({23}$/{18}){0} {18}{{0} {21}make{0} {18}[+]{0} {23}${18}<{23}num{18}>;{0} {18}}{0}
51	{19}method{0} {21}calc-op{15}:sym{18}<{21}sub{18}>{0} {18}({23}$/{18}){0} {18}{{0} {21}make{0} {18}[-]{0} {23}${18}<{23}num{18}>;{0} {18}}{0}
52{18}}{0}
53
54{20}say{0} {21}Calculator{18}.{21}parse{18}({8}'2 + 3'{18},{0} {21}actions{0} {18}=>{0} {21}Calculations{18}).{21}made{18};{0}
55