> : #!/usr/bin/perl -w
> : 
> : $j++;
> : 
> : while (<>) {
> :     $line{$.} = $_;
> :     delete $line{$j++} if ($. == 2 * $j);
> : }
> : 
> : print $line{$j};
> 
> A hash is an associative array and, thus, isn't kosher
> for the problem as stated.

Lets remind ourselves of the problem:

Write a program that reads the lines from a file
and outputs the middle line.  The kicker is that
you can't use arrays.  (Note that there's a little
ambiguity with respect to the definition of "middle
line" when the number of lines in the file is even
or when there is only one line.  Just pick a
reasonable definition and get to work.)

Associative array... looks like I don't get away with that
one :o)

I could do the large string thingy, with the regexps like
others have done... or look again at the problem :-

- Must read lines from a file
- Must output middle line
- Can't use arrays

Thus, if we output everything we have outputted the middle
line... simple huh?  (although some *might* consider this
cheating (understatement?)).  Here's the script:

#!/usr/bin/perl -p

I think I win in both script and perl golf forms of the
challenge :D

Jonathan Paton



__________________________________________________
Do You Yahoo!?
Everything you'll ever need on one web page from News and Sport to Email and Music 
Charts
http://uk.my.yahoo.com
  • ... Ian Phillipps
  • ... Yanick
  • ... Greg Bacon
    • ... Michael G Schwern
      • ... Dmitry Kohmanyuk Дмитрий Кохманюк
        • ... Greg Bacon
          • ... ianb
          • ... Ian Phillipps
            • ... Jonathan E. Paton
              • ... Greg Bacon
              • ... Jonathan E. Paton
              • ... Jonathan E. Paton
              • ... Ian Phillipps
          • ... Keith C. Ivey
            • ... Greg Bacon
              • ... Vladi Belperchinov-Shabanski
    • ... Vladi Belperchinov-Shabanski
  • ... Newton, Philip
  • ... Santa Claus
  • ... Andrew . Savige

Reply via email to