# put stuff in GLOBAL package use Foo; require Bar; sub foo-sub { } method foo-method { } submethod foo_submethod { } macro foo_macro { } regex foo_regex { <sym> } token foo_token { <sym> } rule foo_rule { <foo_rule> <foo_token> } #A class example class FooClass { constant $PI = 22/7; my $.foo; our $!foo; has $field1 is rw; has $.public is rw; has $!private is rw; use Bar; sub foo_sub { } method !private_method {} method ^how_method { } method foo_method { } submethod foo_submethod { } macro foo_macro { } regex foo_regex { <sym> } token foo_token { <sym> } rule foo_rule { <foo_rule> <foo_token> } } #A grammar example grammar Person { rule name { Name '=' (\N+) } rule age { Age '=' (\d+) } rule desc { <name> \n <age> \n } # etc. } #A module example module Foo1 { sub foo_sub { } method foo_method { } submethod foo_submethod { } macro foo_macro { } regex foo_regex { <sym> } token foo_token { <sym> } rule foo_rule { <foo_rule> <foo_token> } } #A package example package FooPackage { sub foo_sub { } method foo_method { } submethod foo_submethod { } macro foo_macro { } regex foo_regex { <sym> } token foo_token { <sym> } rule foo_rule { <foo_rule> <foo_token> } } #A role example role Pet { method feed ($food) { $food.open_can; $food.put_in_bowl; self.eat($food); } } #a slang example slang FooSlang { token foo_token { <sym> } } #a knowhow example knowhow FooKnowHow { token foo_token { <sym> } }