PERL: if($key == "a" ), how to check alphas!


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting PERL: if($key == "a" ), how to check alphas!
# 1  
Old 04-06-2007
PERL: if($key == "a" ), how to check alphas!

hello again, i've checked many sites for examples and am amazed that i can't find a simple example of an if statement to test for an alphanumber value ie:

if($key == "a" )

to run this pgm: perl del3.pl delin

delin data is:
a=1
b=2
c=3

thanks for any pointers
ps: java programmer trying to learn PERL! Smilie

HTML Code:
#!/usr/bin/perl -w
die "Usage: scanmegadata <data file> <site name>\n"
    unless @ARGV == 1;

my $megalithFile = $ARGV[0];

open MEGADATA, "<$megalithFile"
    or die "Can't open $megalithFile: $!\n";

my ( $key, $value );

my %hash = ();

while ( <MEGADATA> ) {
             chop;
                 ( $key,   $value ) = split( /=/, $_ );

             $hash{$key} = $value;
}

       while ( my ($key,   $value) = each(%hash) ) {
           if($key == "a" )
           {
              #print "$key => $value\n";
           }
       }

       for my      $key  ( keys %hash ) {
                        my $value = $hash{$key};

            if($value==1)
            {
               print "$key => $value\n";
            }
       }

close MEGADATA;

exit 9;
# 2  
Old 04-06-2007
you can try
Code:
...
if ( $key =~ /^[[:alnum:]]$/ )
....

# 3  
Old 04-06-2007
hahaahahhah, ok i probably deserve it cos i mentioned i'm a J... programmer right? Smilie

Ok now that i've seen the worse case scenario how about a simpler version please?

if i were to do this in JAVA, to check if a string had an alpha "a" in it, i would do code:

if(aString=="a") {.....

or a character

if(aChar=='a') {.....

PERL must have something simple like that right?

thanks again
BobK Smilie
# 4  
Old 04-06-2007
actually i know where i went wrong, i actually want to check for the value of:

"a"

that's it

thanks again!
BobK
# 5  
Old 04-06-2007
Quote:
Originally Posted by bobk544
actually i know where i went wrong, i actually want to check for the value of:

"a"

that's it

thanks again!
BobK
2 exxamples:
Code:
$var = "a";
if ( $var == "a" )
{
        print "a";
}

Code:
$var = "Z";
if ( $var =~ /^[a-zA-Z]$/ )
{
        print "an alphabet";
}

# 6  
Old 04-07-2007
Use eq to test for string equivalence.

Code:
$word eq 'abc'

I'm amazed at your saying that you can't find it anywhere, as it's so elementary stuff.
# 7  
Old 04-07-2007
Quote:
Originally Posted by ghostdog74
2 exxamples:
Code:
$var = "a";
if ( $var == "a" )
{
        print "a";
}

As a clarification, this method of testing string equivalence in Perl is simply WRONG. This is a grave error.

== is for numerical compare only. Using it for string compare, you will get a lot of false matches, because Perl will try to convert each operand to a numeric, which will be 0 for all but numerical scalars. So the following will be true, because you are actually trying to compare 0 == 0 in each of the cases:

Code:
cbkihong@cbkihong:~$ cat /dev/shm/test.pl 
foreach my $pair (
        ["abc", "def"],
        ["this", "that"],
        ["angel", "devil"],
) {
        printf("%s\t%s\t\t%s\n", 
                $pair->[0], $pair->[1], 
                ($pair->[0] == $pair->[1]? "Equal" : "Not Equal")
        );
}
cbkihong@cbkihong:~$ perl /dev/shm/test.pl
abc     def             Equal
this    that            Equal
angel   devil           Equal

You will get the intended results with eq instead.
Login or Register to Ask a Question

Previous Thread | Next Thread

9 More Discussions You Might Find Interesting

1. AIX

Apache 2.4 directory cannot display "Last modified" "Size" "Description"

Hi 2 all, i have had AIX 7.2 :/# /usr/IBMAHS/bin/apachectl -v Server version: Apache/2.4.12 (Unix) Server built: May 25 2015 04:58:27 :/#:/# /usr/IBMAHS/bin/apachectl -M Loaded Modules: core_module (static) so_module (static) http_module (static) mpm_worker_module (static) ... (3 Replies)
Discussion started by: penchev
3 Replies

2. Shell Programming and Scripting

Bash script - Print an ascii file using specific font "Latin Modern Mono 12" "regular" "9"

Hello. System : opensuse leap 42.3 I have a bash script that build a text file. I would like the last command doing : print_cmd -o page-left=43 -o page-right=22 -o page-top=28 -o page-bottom=43 -o font=LatinModernMono12:regular:9 some_file.txt where : print_cmd ::= some printing... (1 Reply)
Discussion started by: jcdole
1 Replies

3. UNIX for Dummies Questions & Answers

Using "mailx" command to read "to" and "cc" email addreses from input file

How to use "mailx" command to do e-mail reading the input file containing email address, where column 1 has name and column 2 containing “To” e-mail address and column 3 contains “cc” e-mail address to include with same email. Sample input file, email.txt Below is an sample code where... (2 Replies)
Discussion started by: asjaiswal
2 Replies

4. Shell Programming and Scripting

awk command to replace ";" with "|" and ""|" at diferent places in line of file

Hi, I have line in input file as below: 3G_CENTRAL;INDONESIA_(M)_TELKOMSEL;SPECIAL_WORLD_GRP_7_FA_2_TELKOMSEL My expected output for line in the file must be : "1-Radon1-cMOC_deg"|"LDIndex"|"3G_CENTRAL|INDONESIA_(M)_TELKOMSEL"|LAST|"SPECIAL_WORLD_GRP_7_FA_2_TELKOMSEL" Can someone... (7 Replies)
Discussion started by: shis100
7 Replies

5. Solaris

How to check "faulty" or "stalled" print queues - SAP systems?

Hi all, First off, sorry for a long post but I think I have no other option if I need to explain properly what I need help for. I need some advise on how best to check for "faulty" or "stalled/jammed' print queues. At the moment, I have three (3) application servers which also acts as print... (0 Replies)
Discussion started by: newbie_01
0 Replies

6. Shell Programming and Scripting

"Join" or "Merge" more than 2 files into single output based on common key (column)

Hi All, I have working (Perl) code to combine 2 input files into a single output file using the join function that works to a point, but has the following limitations: 1. I am restrained to 2 input files only. 2. Only the "matched" fields are written out to the "matched" output file and... (1 Reply)
Discussion started by: Katabatic
1 Replies

7. Shell Programming and Scripting

"sed" to check file size & echo " " to destination file

Hi, I've modified the syslogd source to include a thread that will keep track of a timer(or a timer thread). My intention is to check the file size of /var/log/messages in every one minute & if the size is more than 128KB, do a echo " " > /var/log/messages, so that the file size will be set... (7 Replies)
Discussion started by: jockey007
7 Replies

8. UNIX for Dummies Questions & Answers

Explain the line "mn_code=`env|grep "..mn"|awk -F"=" '{print $2}'`"

Hi Friends, Can any of you explain me about the below line of code? mn_code=`env|grep "..mn"|awk -F"=" '{print $2}'` Im not able to understand, what exactly it is doing :confused: Any help would be useful for me. Lokesha (4 Replies)
Discussion started by: Lokesha
4 Replies

9. Shell Programming and Scripting

check input = "empty" and "numeric"

Hi how to check input is "empty" and "numeric" in ksh? e.g: ./myscript.ksh k output show: invalid number input ./myscript.ksh output show: no input ./myscript.ksh 10 output show: input is numeric (6 Replies)
Discussion started by: geoffry
6 Replies
Login or Register to Ask a Question