PERL I/O question


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting PERL I/O question
# 1  
Old 01-31-2009
CPU & Memory PERL I/O question

Playing with an until loop as follows:

my $input;

until ($input eq "quit") {
print "Please enter something:";
$input = <STDIN>;
chomp $input;
if ($input eq "dog") {
print "cat" ;
}
else {
print "Please re-enter";
}
}


Something simple like this...

I want to prompt the user to enter something. Whatever they enter, print something and ask again, unless they say "quit" and then quit.

Trying to get a handle on the until() loop and am either getting one of the following problems:
1. Infinite loop/print on "please enter something"
2. The program quits after I enter something
# 2  
Old 01-31-2009
"until" is not a loop, it is a condition. What you want is "while". "while" is a loop and you can use loop commands to control the loop:

next
redo
last

The old standard for what you are doing is:

Code:
while(1){
   ...
}

heres a working example I recently posted on another forum:

Code:
use strict;
use warnings;

my $thinkingof = int(rand 10)+1;
while (1) {
   print "Pick a number 1 to 10\n";
   my $guess = <STDIN>;
   chomp $guess;
   if ($guess > $thinkingof){
      print "You guessed too high\n";
      next;
   }
   elsif ($guess < $thinkingof){
      print "You guessed too low\n";
      next;
   }
   print "YOU GUESSED RIGHT!! It was $guess\n";
   last;
}

# 3  
Old 01-31-2009
Actually, you can do this:

Code:
use strict;
use warnings;

my $thinkingof = int(rand 10)+1;
until (0) {
   print "Pick a number 1 to 10\n";
   my $guess = <STDIN>;
   chomp $guess;
   if ($guess > $thinkingof){
      print "You guessed too high\n";
      next;
   }
   elsif ($guess < $thinkingof){
      print "You guessed too low\n";
      next;
   }
   print "YOU GUESSED RIGHT!! It was $guess\n";
   last;
}

# 4  
Old 02-01-2009
Great, thanks. I'll need to look into how and why this works. But it did.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Perl question about

Hello everybody, I am new at the forum and a total newbie when it comes to Unix. I am trying to see how I can add the ability to kill a user's processes? I want to add this to my Shel Script Add the code/process into a subroutine. Also, I would like to use an array to store the list... (0 Replies)
Discussion started by: kinelisch
0 Replies

2. Shell Programming and Scripting

PERL Question ...

I am reading a file in perl script .. during the debug the $linein value is : linein : +ASM1,sys,||¬ |3Æqúoü;”ט|| from this line I am getting the tmepuser and password from above : ($tmpuser, $pwd) = ($linein =~ /^$server\s*,\s*(+)\s*,\|\|(.+)\|\|/sm); I am getting $tmpuser and... (2 Replies)
Discussion started by: talashil
2 Replies

3. Shell Programming and Scripting

another perl question

I have a question regarding bulding a hash from a file which has below pattern I thought I could write something like this but clearly my syntax is way off $/ = "\n\n"; $" = "\n"; open(FILE, file1) || die; my %keymaster = ( ); while (<FILE>) { my $topinfo =~... (5 Replies)
Discussion started by: hankooknara
5 Replies

4. Shell Programming and Scripting

another perl question

I fail to see how below answer is 1? can someone explain this for me? DB<3> $string = "The cat sat on the mat"; DB<4> $animal = ($string =~ m/The (.*) sat/); DB<5> print $animal; 1 (2 Replies)
Discussion started by: hankooknara
2 Replies

5. Shell Programming and Scripting

Perl question regarding [ ]

Below program, I do not get why item I am looking for is , instead of . When I do $#text, i get the right value for $value1, but when I do , i get somsething4, instead of somsethingxxxxxxxxxxxxxxxxxxx(which is what I am looking for. when I do , I get empty.. why? what did I do wrong? can you... (2 Replies)
Discussion started by: hankooknara
2 Replies

6. Shell Programming and Scripting

another perl question

I copy and paste from the book but this thing is not working. I cannot figure out what is wrong with myline 9.. can someone please tell me # cat ./sort4.pl #!/usr/bin/perl -w use strict; use warnings; my $input = shift; my $output = shift; open(IN, '<', $input) or die... (4 Replies)
Discussion started by: hankooknara
4 Replies

7. Shell Programming and Scripting

PERL question

Hello, pkzipc of a certain zip file yeilds the following in shell PKZIP(R) Version 6.0 FAST! Compression Utility for AIX Copyright 1989-2002 PKWARE Inc. All Rights Reserved. Registered Version PKZIP Reg. U.S. Pat. and Tm. Off. Patent No. 5,051,745 Viewing .ZIP: test.zip Length... (13 Replies)
Discussion started by: jerardfjay
13 Replies

8. Shell Programming and Scripting

perl question

If I use 2 system commands in a script, will one finish before the next one starts? or will it start the first and the second at the same time? i.e. system("ps | grep rminer"); system("ls -al | grep 431"); (1 Reply)
Discussion started by: BG_JrAdmin
1 Replies

9. Shell Programming and Scripting

Perl: tk question

When i run my perl/tk script, a perl window pops up behind the GUI window,, can this be hidden???? Also, can the Icon be changed, the Tk icon in every window??? (1 Reply)
Discussion started by: perleo
1 Replies

10. Shell Programming and Scripting

Question about Perl

Where can i find solid information about programming in Perl? Thank you in advance!!!:) (5 Replies)
Discussion started by: SolidSnake
5 Replies
Login or Register to Ask a Question