[Last Call] Learn how to a build a cloud-first strategyRegister Now

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 235
  • Last Modified:

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

0
Tolgar
Asked:
Tolgar
  • 2
1 Solution
 
ozoCommented:
$_='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

Featured Post

Free Tool: Site Down Detector

Helpful to verify reports of your own downtime, or to double check a downed website you are trying to access.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now