punkish has asked for the wisdom of the Perl Monks concerning the following question:
I have the following
__DATA__ blah blah blah blah blah blah blah blah blah blah blah blah INTERESTING CODE-- CODE NAME CODE NAME -------- ----------------------- -------- ----------------------- ABC NAME ONE RST NAME EIGHT ... DEF NAME TWO THREE WXY NAME NINE - TEN GHIJK NAME FOUR ... ZAB NAME ELEVEN LMN NAME FIVE - SIX CDE NAME TWELVE OPQ NAME SEVEN more blah blah blah
I want the following
######################### print $interesting_code; # output "NAME ONE, NAME TWO THREE, NAME FOUR ..., NAME FIVE - SIX, NAME SEVEN, + NAME EIGHT ..., NAME NINE - TEN, NAME ELEVEN, NAME TWELVE" # you get the picture... a csv list of NAMEs #########################
I have almost solved the above, but my code is so juvenile that I put it forth here with great embarassment. It is also not producing the correct output, and is certainly not going to hold for variations in the above. While there could be variations in the INTERESTING CODE block, it would still be formatted as above. A two-column set of two columns, the CODE followed by the NAME
my $stuff; my @stuff; while (<DATA>) { if ($stuff) { push(@stuff, $_) if (!($_ =~ /^\s*CODE\s*NAME/) && !($_ =~ /^\s*-+/)); } else { $stuff = 1 if ($_ =~ /^INTERESTING CODE-+/); } } my @interesting_code; for (@stuff) { my @code = split(/\s{2,}/, $_); my $i = 0; for (@code) { push(@interesting_code, $_) if !($i % 2); $i++; } } $interesting_code = join(', ', @interesting_code);
I seek edification; and better, and more dependable code. All advice welcomed with gratitude.
Update: Reformatted so one wouldn't get a headache from reading it.
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Extracting formatted text block
by ikegami (Patriarch) on Mar 16, 2005 at 23:08 UTC | |
|
Re: Extracting formatted text block
by Zaxo (Archbishop) on Mar 16, 2005 at 23:07 UTC | |
by ikegami (Patriarch) on Mar 16, 2005 at 23:33 UTC | |
|
Re: Extracting formatted text block
by jdporter (Paladin) on Mar 16, 2005 at 23:32 UTC | |
|
Re: Extracting formatted text block
by BrowserUk (Patriarch) on Mar 17, 2005 at 03:25 UTC | |
|
Re: Extracting formatted text block
by TedPride (Priest) on Mar 17, 2005 at 00:28 UTC | |
by punkish (Priest) on Mar 17, 2005 at 01:30 UTC | |
|
Re: Extracting formatted text block
by punkish (Priest) on Mar 17, 2005 at 02:06 UTC | |
by jdporter (Paladin) on Mar 17, 2005 at 05:56 UTC | |
|
Re: Extracting formatted text block
by sh1tn (Priest) on Mar 17, 2005 at 02:29 UTC |