sub contains ( Str $chars, Str $_ ) { m:g/<{$chars.comb}>+/ }; This will return all the sets of matching strings but it is doing runtime evaluation of your character string so it's a bit slow.
On Sun, 1 Sep 2019 at 04:59, Paul Procacci <pproca...@gmail.com> wrote: > I'm not entirely sure if this is the correct answer, but if you define > your own custom character class > with a 'regex' object, you can use that in the grouping. > > sub matching_chars(Str $chars_to_match, Str $_) { > my regex x { $chars_to_match ** 1 }; > m/<[<x>]>/; > } > > The above worked for me in the very small testing I did. > > ~Paul > > On Sat, Aug 31, 2019 at 9:54 PM yary <not....@gmail.com> wrote: > >> 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 >> > > > -- > __________________ > > :(){ :|:& };: > -- Simon Proctor Cognoscite aliquid novum cotidie http://www.khanate.co.uk/