Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 26 Jul 2004 09:18:22 +0200
From:      Mathias Samuelson <mathias.samuelson@proact.se>
To:        iaccounts@ibctech.ca
Cc:        freebsd-questions@freebsd.org
Subject:   Re: Perl split() question (OT)...
Message-ID:  <4104B03E.3080102@proact.se>

next in thread | raw e-mail | index | archive | help
Steve Bertrand wrote:
> Perl hackers -- Figured someone would have a reasonably quick, easy answer
> for this:
> 
> I am trying to read through a file, line-by-line, and I want to extract
> the text in between the [ and ] characters. I would normally half the line
> by split() - ing the line first by [ as follows:
> 
>         if ($logLine =~ /$struct$structStart/) {
>                 @lineArray = split (/[/, $logLine);
> 
> and then further, half again later using the ]. However, Perl does not
> like it when I search for [, as it thinks I am trying to use a regex. I
> have tried to escape the pattern, to no avail.
> 
> Is there a 'special' escape for this, and more importantly, is there an
> easier way to extract data from a line of a file without having to split
> it up twice?
> 
> An example of the line I'm trying to get the contents out of is this:
> 
> | "LRED[Conversation started on 03 Feb 21:51:11]
> 
> and I need the data between [ ... ].
> 
> I know it's OT, but hopefully someone can help me out.
> 
> Tks!
> 
> Steve

Something like this perhaps:

while(<>) {
	/.*\[(.*)\].*/;
	$text = $1;
}

Rgds
Mathias



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4104B03E.3080102>