lundi 27 avril 2020

Conditional Statement for Strings "eq" not working in Perl

I am trying to put a condition to check whether two strings are equal or not? By using eq I am checking whether the Scalar variable is having the string 'png' but it does not seem to be working as it should be. When I am printing the scalar on the terminal it shows that it contains 'png'. The default IF statement is: if($fileEnding eq "png") then I manipulated by using single quotes enclosing the png: if($fileEnding eq 'png') but it didn't work that way either. I also however, did something like my $png = "png" initializing a scalar with 'png' and then checking the scalar by putting it in IF statement if($fileEnding eq $png). Nothing Happened!

Below is my code:

$fileEnding = `basename -s $ending`;                

            if($fileName !~ /(.*)?\.(.*)/) #This is just for checking if a file has an extension.
            {
                print $fileEnding;
                if($fileEnding eq "png")
                {
                    print "Yes it's a Png File\n";
                }

                if($fileEnding eq "gif")
                {
                    print "Yes it's a Gif File\n";
                }
            }

When I use ne instead of eq, the code executes, which is extremely weird and repetitive. Please see the attached image: enter image description here

The $fileEnding scalar does contain both 'png' and 'gif' which you can see on terminal. enter image description here

I am not able to figure out where I'm going off the rails.? Some help will be highly appreciated.

Aucun commentaire:

Enregistrer un commentaire