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.
In reply to Re: Problem with reading multi-line
by BrowserUk
in thread Problem with reading multi-line
by sarshads
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |