in reply to Parsing file and joining content into string
great! =)
> I need to start at the # of each entry and finish at the END
2 possible approaches
1. you change the INPUT_RECORD_SEPARATOR to 2 linebreaks $/="\n\n"
Iterating now with while ( $chunk = <$INPUT>) will give you multiple lines to process in chuncks.
2. you use the flip-flop operator '..' to read all lines between from start till end pattern
if ( $line =~ /^# \d+ \d+\.\d+$/ .. $line =~ /^END$/ ) { $chunk.=$line; } else { process($chunk) if $chunk; $chunk='': }
You're free to directly process($line) and to skip the '$chunk'-part completely.
> join the contents of the data into one complete string keeping the ";" separators.
well $chunk is a complete string now, do a regex that substitutes ";\n" with ";"
If you process line-by-line try chomp $line to kill all '\n'
> I need to do this for each occurrence of data which falls between # and END.
You need to get rid of start and end line?
Then substitute them away with patterns given. see s///
Or extend the flip-flop expression and add and not //
'//' defaults to matching the last successful pattern, in your case first and last line. not excludes them
So I'm curious to see your code and I hope others won't take the fun away! =)
HTH!
Cheers Rolf
|
|---|