Hi Mike.
Something like:
while (<>)
{
if ( /^(\d\d\d)\s*"([^"]+)/ )
{
($level, $text) = (0+$1, $2);
print "$level $text\n";
}
}
will do what you want. It looks for lines starting with three digits,
optional spaces and a double quote. It captures (implicitly into $1, $2) the
three digits, and everything after the quote until another double quote or
the end of the line. 0+$1 converts the string '010' to numeric 10 (which you
may not need).
Cheers,
Rob
"Mike Burnard" <[EMAIL PROTECTED]> wrote in message
[EMAIL PROTECTED]">news:[EMAIL PROTECTED]...
> Hi,
>
> I'm in the midst of writing my first useful perl script. It's designed to
> pull text out of a plain text file and write a xml plist.
>
> The only trouble I'm having (so far) is getting the text out the way I
want
> it.
>
> The file I'm pulling data out of is formatted like this:
>
> 010 "red"
>
> 011 "diamond"
>
> 012 "lion"
>
> 010 "blue"
>
> 012 "blue whale"
>
> 011 "emerald"
>
> So, I've got this to get specific groups out at once:
>
> while (<OLDHL>) {
> if(/^010/) {
> -- part I need help with --
> }
> }
>
> I just need to know what to put to get only the part within quotes out of
> each line. I'm going to put them into either an array, but I can figure
> that part out, its just getting only part of the line I'm having trouble
> with.
>
> I think I'll have no problem writing the xml file with printf, other than
> this small problem I'm having fun. I was proud of myself when I got all
of
> the 010's to print to the screen at least!.
>
> Thanks for your help.
>
> -mike
>
>
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]