Checking the user input in perl for characters and length


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Checking the user input in perl for characters and length
# 1  
Old 05-07-2017
Checking the user input in perl for characters and length

My question is basically as the title says. How can I check a user inputted string is only certain characters long (for example, 3 characters long) and how do I check a user inputted string only contains certain characters (for example, it should only contain the characters 'u', 'a', 'g', and 'c') all in perl.
# 2  
Old 05-07-2017
Test with it:

Code:
#!/usr/bin/perl
#
use strict;
use warnings;

print "Please, choose three of the following characters (u,a,g or c): ";
my $answer = <STDIN>;
chomp $answer;
if ($answer =~ /^[uagc]{3}$/) {
    print "Your choice is accepted\n";
}
else {
    print "Your choice is rejected\n";
}

# 3  
Old 05-08-2017
Thanks Aia! I have another question actually. In Perl, how do you declare multiple keys to one value when it comes to hashes?

An example would be, say, I want four keys known as 'acg', 'acc', 'aca', and 'caa' to one value known as 'Phr'. And two keys known as 'gaa' and 'gac' to one value known as 'Rea'.
# 4  
Old 05-08-2017
Code:
#!/usr/bin/perl

use strict;
use warnings;
use Data::Dumper;

my @phr = qw(acg acc aca caa); # used on method 1

my (%phrhash, %reahash);
@phrhash{@phr} = ('Phr') x @phr; # method 1
@reahash{'gaa', 'gac'} = qw(Rea Rea); # method 2

print Dumper \%phrhash;
print Dumper \%reahash;

Output:

Code:
perl test.pl
$VAR1 = {
          'aca' => 'Phr',
          'caa' => 'Phr',
          'acg' => 'Phr',
          'acc' => 'Phr'
        };
$VAR1 = {
          'gaa' => 'Rea',
          'gac' => 'Rea'
        };

This User Gave Thanks to Aia For This Post:
# 5  
Old 05-09-2017
Thank you Aia!
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Perl to read user input

I am creating a bash that uses perl . The below code closes before the input is entered. If I run the perl as a .pl it is fine. What am I doing wrong? Thank you :). #!/bin/bash cd 'C:\Users\cmccabe\Desktop\wget' wget -O getCSV.txt http://xxx.xx.xxx.xxx/data/getCSV.csv print... (4 Replies)
Discussion started by: cmccabe
4 Replies

2. Shell Programming and Scripting

User input in perl code

Hello friends . I am newbie to perl scripting but still managed to write a code but i am stuck at a place where i need help . Below is the code and can someone help me in taking user input for changing the font size for a html table .Thank you in advance #!/bin/ksh echo " Enter the Directory... (4 Replies)
Discussion started by: ajayram_arya
4 Replies

3. Shell Programming and Scripting

TCSH user input error checking

This was taken down recently because it appeared to be homework, but it isn't. It's for a script I am working on at work. Thanks for the help. How do you check that user inputs (arguments 1 and 2) are both numbers and are at least 5 digits in length? (2 Replies)
Discussion started by: thibodc
2 Replies

4. Shell Programming and Scripting

user input in perl?

Please tell me how to write a perl script that asks the user to enter words and that passes them to a variable. In bash, the "read" command would achieve such user interaction. #!/bin/bash read -p "Enter files: " vFiles However, I am looking for perl version of something equivalent... (2 Replies)
Discussion started by: LessNux
2 Replies

5. Shell Programming and Scripting

User input - Perl need Help

If I want all user input to start with " : " if not display error or what I asking is how to do if statement that control a first letter of string that we want to start with. and not worry about the rest Thank (1 Reply)
Discussion started by: guidely
1 Replies

6. Programming

Checking columns in SQL, comparing user input and sizes.

I'm writing a KSH shell script that's using SQL though DB2. If I have a table defined and populated db2 "create table tb(num int,letter char(4))" db2 "insert into tb values(111,a) db2 "insert into tb values(112,b) db2 "insert into tb values(111,c) How can I check if a letter user... (0 Replies)
Discussion started by: busdude
0 Replies

7. Shell Programming and Scripting

exit script if user input not four characters

#!/usr/bin/bash ###script to input four characters. wxyz echo "input first string" read instring1 echo "input second string" read instring2 ## echo "first string is:" $instring1 echo "second string is:" $instring2 ##IF instring1 or instring2 are NOT 4 characters (xxxx) , exit 1. ##how?? ... (2 Replies)
Discussion started by: ajp7701
2 Replies

8. AIX

Is the Length of User ID for AIX Limit to 8 Characters?

Hi, I'm using AIX version 5.3 currently. I'm trying to create a user id, e.g. andyleong, which the system prompted the length is too long. 1. I would like to know is that the length of user id is limited to maximum 8 characters for AIX. 2. Is it apply to all versions of AIX? If no... (2 Replies)
Discussion started by: meihua_t
2 Replies

9. Shell Programming and Scripting

Disallowing certain characters from user input

Hey, I've create a custom useradd script, and I don't want the person creating the user to be able to put comma's in any of the input fields, because it could corrupt the /etc/passwd file. I don't care what other characters they put in there, so is there a way I can just check all the input... (1 Reply)
Discussion started by: paqman
1 Replies

10. Shell Programming and Scripting

creating a fixed length output from a variable length input

Is there a command that sets a variable length? I have a input of a variable length field but my output for that field needs to be set to 32 char. Is there such a command? I am on a sun box running ksh Thanks (2 Replies)
Discussion started by: r1500
2 Replies
Login or Register to Ask a Question