|
Re: [QUIZ] Perl 'Easy' Quiz of the Week #2005-1: msg#00039lang.perl.qotw.discuss
The problem stated that the output should be sorted. That wouldn't be the case with this solution. -b Ronald J Kimball said: > My solution is very similar to Roger's. > > > #!/usr/local/bin/perl -w > > if (@ARGV > 2) { > die "usage: $0 [<input file> [<output file>]]\n"; > } > > if (@ARGV == 2) { > my $out = pop @ARGV; > open STDOUT, ">$out" > or die "Cannot open $out for writing.\n"; > } > > my $last_prefix = ''; > my $printed_m = 1; > > while (<>) { > chomp; > my($prefix, $suffix) = split /\./; > if ($prefix ne $last_prefix) { > if (not $printed_m) { > print "$last_prefix.M\n"; > } > $last_prefix = $prefix; > $printed_m = 0; > } > if ($suffix eq 'M') { > $printed_m = 1; > } > if ($suffix gt 'M' and not $printed_m) { > print "$last_prefix.M\n"; > $printed_m = 1; > } > print "$_\n"; > } > > if (not $printed_m) { > print "$last_prefix.M\n"; > } > > __END__ > |
|
| <Prev in Thread] | Current Thread | [Next in Thread> |
|---|---|---|
| Previous by Date: | Re: [QUIZ] Perl 'Easy' Quiz of the Week #2005-1: 00039, Ronald J Kimball |
|---|---|
| Next by Date: | Re: [QUIZ] Perl 'Easy' Quiz of the Week #2005-1: 00039, Shlomi Fish |
| Previous by Thread: | Re: [QUIZ] Perl 'Easy' Quiz of the Week #2005-1i: 00039, Ronald J Kimball |
| Next by Thread: | Re: [QUIZ] Perl 'Easy' Quiz of the Week #2005-1: 00039, Shlomi Fish |
| Indexes: | [Date] [Thread] [Top] [All Lists] |
| News | FAQ | advertise |