in reply to Problem with reading multi-line
Although you've asked the user how many numbers to enter up front, and stored it in $times, you then make no use it at all.
So when you do @ascii=<STDIN>;, perl doesn't know how many numbers to ask for, so It'll just keep asking for more until the user does something to stop it. For example, typing ^Z (or ^D on *nix?). But if the user enters more or less numbers before doing that, your program will get more or less than it is expecting.
You need to modify your code so that it uses the value of $times to control how many times you ask the user for another number. Eg.
#!/usr/bin/perl use strict; use warnings; print "Enter the number of times : "; my $times=<STDIN>; my @ascii; foreach (1 .. $times ) { push @ascii, scalar <STDIN>; } foreach my $s ( @ascii ) { print chr($s); }
You'll get on much better if you format your code properly. And using strict and warnings will save you many hours of reshaping your plaster with your forehead.
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: Problem with reading multi-line
by jwkrahn (Abbot) on May 02, 2010 at 00:27 UTC | |
|
Re^2: Problem with reading multi-line
by sarshads (Novice) on May 02, 2010 at 14:41 UTC |