On Oct 11, Juan Manuel Casenave said:
1. First Name:
2. Last Name:
3. Age:
#!/usr/bin/perl
# strip_answers.pl
use strict;
use warnings;
# array to store the stripped results
my @information;
# open a filehandle to output.txt (where the results are stored) in read
mode
open (IN, '<', 'output.txt') or die "Can't open output.txt: $!\n";
# while the filehandle is open, read each line and see if it matches
# the regular expression
while (<IN>) {
# iterate though the filehandle 25 times (one for each question). I set $i
to 1 as
# the first question begins with the number 1
for (my $i=1; $i<26; $i++) {
Here's where your logic fails. Your outer while loop is reading a line;
your inner for loop is doing the same thing 26 times! In addition, you're
starting $i at 1, which means your setting $information[1], and never
$information[0] (which is where arrays start).
How about this:
my @info;
while (<IN>) {
# stop after the 25th line ($. holds line number)
last if $. > 25;
# get the stuff after the :
my $answer = (split /:/, $_, 2)[1];
# set $answer to "-" if $answer doesn't
# have a non-whitespace character in it
$answer = "-" if $answer !~ /\S/;
push @info, $answer;
}
And then you loop through it like so:
for my $idx (0 .. $#info) {
print $idx + 1, ": $info[$idx]\n";
}
--
Jeff "japhy" Pinyan % How can we ever be the sold short or
RPI Acacia Brother #734 % the cheated, we who for every service
http://www.perlmonks.org/ % have long ago been overpaid?
http://princeton.pm.org/ % -- Meister Eckhart
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>