RosettaCodeData/Task/Tokenize-a-string-with-escaping/Perl/tokenize-a-string-with-escaping-1.pl
2023-07-01 13:44:08 -04:00

6 lines
207 B
Perl

sub tokenize {
my ($string, $sep, $esc) = (shift, quotemeta shift, quotemeta shift);
my @fields = split /$esc . (*SKIP)(*FAIL) | $sep/sx, $string, -1;
return map { s/$esc(.)/$1/gsr } @fields;
}