Beefy Boxes and Bandwidth Generously Provided by pair Networks
Just another Perl shrine

Re^3: Creating hash with my imput

by kejohm (Hermit)
on Aug 19, 2011 at 02:29 UTC ( #921124=note: print w/ replies, xml ) Need Help??

in reply to Re^2: Creating hash with my imput
in thread Creating hash with my imput

If by exit you mean exit the loop and continue the script after the loop, you can use the last function to drop out of a loop, something like:

... while($in){ if($in =~ /exit/i){ last; } } # Code will continue here ...

Here we are using a case-insensitive regular expression match to test for the user entering 'exit'. This means that the user can enter 'Exit', 'EXIT', eXiT', etc. and the loop will still terminate.

This may not be necessay, since in my original example, if the user presses the ENTER key without typing anything, the input will be an empty string after chomp() has removed the newline, which, in Perl, evaluates to false, and the loop terminates.

If, on the other hand, you mean exit from the script without, for instance, printing anything like in my original example, just replace last with exit in the example above.

Comment on Re^3: Creating hash with my imput
Select or Download Code
Re^4: Creating hash with my imput
by rolandomantilla (Novice) on Aug 19, 2011 at 03:02 UTC
    What I meant was exit the loop and print, sorry about the confussion. Although the extra code that you gave me just exits the loop and does not print the hash, how do I do this, byt the way thank you again

      last should cause the script to drop out of the loop and continue. Maybe post the code that you have so we can see what the problem might be.

        Ok here is the code, is doing almost everything that I want ecxept for when I put exit I wanted to print the answer. For example put in my ID and my DNA X amount of times and them write exit and print out the hash. here is the code
        #!/usr/bin/perl use strict; use warnings; my %hash; print ("put ID fallowed by a comma "," with the DNA for that ID\n\n"); chomp (my $in=<STDIN>); while ($in) { if ($in=~ /exit/i){ exit,} #Split the input on a coma into a maximum of two fields my ($id,$dna)= split m/,/, $in, 2; $hash{$id}= $dna; print "Please enter another ID and DNA\n"; chomp ($in= <STDIN>); } #Print hash contents while(my($key,$value)= each %hash){ print ">$key $value\n"; }

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://921124]
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others wandering the Monastery: (7)
As of 2014-08-01 05:27 GMT
Find Nodes?
    Voting Booth?

    My favorite superfluous repetitious redundant duplicative phrase is:

    Results (256 votes), past polls