multi sub length () returns Int { 0 } multi sub length (*$x, *@xs) returns Int { 1 + length(@xs) } sub length2(*@x) returns Int{ multi sub iter(*$curr) returns Int{ $curr } multi sub iter(*$curr, *$x, *@xs) returns Int{ iter($curr + 1, @xs); } iter(0, @x); } say "... length"; say length(1, 'foo', 3, 4, 'bar'); say length('foo'); say length2(1, 'foo', 3, 4, 'bar'); say length2('foo'); say length();