http://qs321.pair.com?node_id=1214769


in reply to Re: store rest of the lines in a array after a matching pattern is found
in thread store rest of the lines in a array after a matching pattern is found

Tried that option earlier but got an error Unmatched ( in regex; marked by <-- HERE in m/^ServiceCategoryName=( <-- HERE .*/ at

  • Comment on Re^2: store rest of the lines in a array after a matching pattern is found

Replies are listed 'Best First'.
Re^3: store rest of the lines in a array after a matching pattern is found
by roboticus (Chancellor) on May 17, 2018 at 17:41 UTC

    Then you had a syntax error in your code (such as either missing the closing parenthesis, misplacing it (putting it to the right of the slash), or accidentally escaping it (by preceding it with a \). As you can see here, it should just work:

    $ perl foo.pl ServiceCategoryName=foo,bar,baz my string foo $ cat foo.pl use strict; use warnings; my $str = "ServiceCategoryName=foo,bar,baz\n"; if ( $str =~ m/^ServiceCategoryName=(.*)/) { print $str; # Extract the array from "the rest of the line" my @array = split /,/, $1; print "my string ", $array[0], "\n"; } else { print "Can't find ServiceCategoryName!\n"; }

    ...roboticus

    When your only tool is a hammer, all problems look like your thumb.

Re^3: store rest of the lines in a array after a matching pattern is found
by AnomalousMonk (Archbishop) on May 17, 2018 at 19:07 UTC
    Tried that option ...

    You don't say what option you tried (a mortal sin in the Monastery), but one can make a guess at your code:

    c:\@Work\Perl\monks>perl -wMstrict -le "my $str = 'ServiceCategoryName=(3,1,0,1,1,0)'; ;; if ($str =~ m/^ServiceCategoryName=(.*/) { print qq{'$str'}; my @array = split /,/, $str; print qq{first split element: '$array[0]'}; } " Unmatched ( in regex; marked by <-- HERE in m/^ServiceCategoryName=( < +-- HERE .*/ at -e line 1.
    roboticus has suggested ways to fix this:
    c:\@Work\Perl\monks>perl -wMstrict -le "my $str= 'ServiceCategoryName=(3,1,0,1,1,0)'; ;; if ($str =~ m/^ServiceCategoryName=\((.*)\)/) { print qq{parenthesized substring: '$1'}; my @array = split /,/, $1; print qq{first split element: '$array[0]'}; } " parenthesized substring: '3,1,0,1,1,0' first split element: '3'
    In future, please show exactly what you have tried, the exact output you got, and what you wanted. Please see Short, Self-Contained, Correct Example.


    Give a man a fish:  <%-{-{-{-<