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]

Reply via email to