in reply to Re: Regex help needed
in thread Regex help needed

"Technically" split requires a regular expression as its first argument. String patterns appear to be an undocumented extension.

Replies are listed 'Best First'.
Re^3: Regex help needed
by JavaFan (Canon) on Apr 23, 2012 at 16:38 UTC
    Huh, what are you talking about? Using strings as patterns is fine. Remember, this is Perl. If Perl expects a pattern somewhere, whatever you put there is a pattern. What you call an "undocumented" extension is nothing different from:
    $foo = "3"; $bar = 4 + $foo;
    or even:
    my $pattern = "foo|bar"; say "Match" if $str =~ $pattern;
    In my snippet, '%' is pattern by virtue of it being the first argument of split, not because of some "undocumented extension".

    Note also this snippet from the split documentation:

    As a special case, specifying a PATTERN of space (' ') will
    split on white space just as "split" with no arguments does.
    
    Note how the documentation talks about a pattern, while using quotes to delimit said pattern.
      But be careful, / / and ' ' are not the same thing for split:
      use feature 'say'; my $x = "a\tb\tc"; say for split ' ', $x; say for split / /, $x;
      your example
      my $pattern = "foo|bar"; say "Match" if $str =~ $pattern;
      is very convincing. - Sorry about that.