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]