Beefy Boxes and Bandwidth Generously Provided by pair Networks
Think about Loose Coupling

Re: Regex help needed

by JavaFan (Canon)
on Apr 23, 2012 at 11:10 UTC ( #966579=note: print w/replies, xml ) Need Help??

in reply to Regex help needed

I wouldn't bother with a regexp. I'd use split (technically, that uses a regexp as well):
my ($first, $last, $id) = split '%'; print "$last $first\n" if substr($id, 0, 1) eq 'A';

Replies are listed 'Best First'.
Re^2: Regex help needed
by BillKSmith (Parson) on Apr 23, 2012 at 15:51 UTC
    "Technically" split requires a regular expression as its first argument. String patterns appear to be an undocumented extension.
      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.
Re^2: Regex help needed
by ansh batra (Friar) on Apr 23, 2012 at 11:12 UTC

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://966579]
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others perusing the Monastery: (3)
As of 2018-07-23 02:39 GMT
Find Nodes?
    Voting Booth?
    It has been suggested to rename Perl 6 in order to boost its marketing potential. Which name would you prefer?

    Results (459 votes). Check out past polls.