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