Re: [QUIZ] Perl 'Easy' Quiz of the Week #2005-1

Shlomi Fish <shlomif-ik1l9ssToec+JF/[email protected]> Mon, 24 Jan 2005 19:32:30 +0200
Newsgroups gmane.comp.lang.perl.qotw.discuss
Message-ID <[email protected]>
On Monday 24 January 2005 19:26, Brad Greenlee wrote:
> The problem stated that the output should be sorted. That wouldn't be the
> case with this solution.
>

Why not? Seems fine to me, and it passes all the tests in my test suite. Can 
you give an example where it doesn't produce the expected output?

Regards,

	Shlomi Fish

> -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__

-- 

---------------------------------------------------------------------
Shlomi Fish      shlomif-ik1l9ssToec+JF/[email protected]
Homepage:        http://www.shlomifish.org/

Knuth is not God! It took him two days to build the Roman Empire.