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
In reply to Re: Parsing file and joining content into string
by LanX
in thread Parsing file and joining content into string
by Mark.Allan
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |