I found something easy in Perl 5 that's puzzling me in Perl 6- specifying a
character class via a variable.
Perl 5:
sub matching_chars {
(my $chars_to_match, local $_) = @_;
/([$chars_to_match]+)/
}
say matching_chars('24680', '19584203'); # says 8420
say matching_chars('+\/\]\[', 'Apple ][+//e'); # says ][+//
Perl 6:
sub matching_chars(Str $chars_to_match, Str $_) {
# warnings, treats as string not variable
m/<[$chars_to_match]>/;
}
How do I get Perl 6 to interpret a variable in the contents of a character
class?
>From http://docs.perl6.org/language/regexes#Regex_interpolation I'd think
that Rakudo would use the literal contents of $chars_to_match, instead
it's using the literal chars "$ c h a r s _ t o _ m a t c h" and warning
about repeated c, underscore, etc.
-y