How to parse a string in Perl

How can I parse the following example string and get the expected results? This is just an example. The more general form is given below.

some/path/to/a/file.x:40: Error: (C 7-13): THIS will be removed in a future release. Use THAT without ERROR instead.

Open in new window


Expected output 1:
40

Open in new window


Expected output 2:
THIS will be removed in a future release. Use THAT without ERROR instead

Open in new window



The general form:

some/path/to/a/file.k:SOMENUMBER1: Error: (C SOMENUMBER2-SOMENUMBER3): SOME TEXT IN HERE

Open in new window


The expected output is:

SOMENUMBER1

Open in new window


SOME TEXT IN HERE

Open in new window

TolgarAsked:
Who is Participating?
 
ozoConnect With a Mentor Commented:
$_='some/path/to/a/file.x:40: Error: (C 7-13): THIS will be removed in a future release. Use THAT without ERROR instead.';
@expectedoutput=(split/:/)[1,4];
0
 
tampnicCommented:
Of course on a unix filesystem the colon ":" could potentially be part of a file name so tokenising the string with a "split" wouldn't work reliably. I'm a Perl beginner but I would be looking at using a regular expression to solve this. I know how I would write it in a sed script :-)

Cheers,
   Chris
0
 
ozoCommented:
the colon ":" could potentially be part of a file name
the ":40:" or even the "THIS will be removed in a future release. Use THAT without ERROR instead" could potentially be part of a file name, so how would you reliably identify the SOMENUMBER1 and SOME TEXT IN HERE that you want?
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.