For example, a Blind role for a Human could include an attribute of type Guide; this attribute could contain a Guide Dog, a Guide Horse, a Guide Human, or even a Guide Machine.  class Human { role Blind {  Perl's regular expression and string-processing support has always been one of its defining features. Since Perl's pattern-matching constructs have exceeded the capabilities of regular language expressions for some time, Raku documentation will exclusively refer to them as "regexes", distancing the term from the formal definition. Raku provides a superset of Perl features with respect to regexes, folding them into a larger framework called "rules" which provide the capabilities of context-sensitive parsing formalisms (such as the syntactic predicates of parsing expression grammars and ANTLR), as well as acting as a closure with respect to their lexical scope. Rules are introduced with the codice_18 keyword which has a usage quite similar to subroutine definition. Anonymous rules can also be introduced with the codice_19 (or codice_20) keyword, or they can simply be used inline as regexps were in Perl via the codice_21 (matching) or codice_22 (substitute) operators. In "Apocalypse 5", Larry Wall enumerated 20 problems with "current regex culture". Among these were that Perl's regexes were "too compact and 'cute'", had "too much reliance on too few metacharacters", "little support for named captures", "little support for grammars", and "poor integration with 'real' language". Some Perl constructs have been changed in Raku, optimized for different syntactic cues for the most common cases. For example, the parentheses (round brackets) required in control flow constructs in Perl are now optional:  if is_true() {  Also, the codice_23 (comma) operator is now a list constructor, so enclosing parentheses are no longer required around lists. The code  @array = 1, 2, 3, 4;  now makes codice_24 an array with exactly the elements '1', '2', '3', and '4'. Raku allows comparisons to "chain". That is, a sequence of comparisons such as the following is allowed:  if 20 <= $temperature <= 25 {  This is treated as if each left-to-right comparison were performed on its own, and the result is logically combined via the codice_25 operation.