From: "Trina Espinoza" <[EMAIL PROTECTED]>
> I would like to know how  I would say if $item equals $tempitem OR if
> $item is empty(the variable is  a placeholder that has nothing in it),
> execute command. 

I'd revert the tests. First see whether it's empty, then whether it 
equals something:

        if (!defined $item or $item eq $tempitem) {
                do something

> Are either of these saying the above statement
> because I don't seem to be getting the expected results.
> 
> If ($item =~ /^(\D+)(\d+)/ {)
>     If ($1 eq !$tempitem) {

I guess the capital "I"s were introduced by your mail client (I know 
some programs think they know better:-}

Anyway the
        $1 eq !$tempitem
doesn't really make sense.

If you want to say "$1 does not equal to $tempitem" it should be 
either
        $1 ne $tempitem
or
        !($1 eq $tempitem)
or
        not ($1 eq $tempitem)

In your version you first LOGICALY negate the $tempitem (which means 
that if $tempitem is 0, 0.0, "0", "" or undef you get 1, in all other 
cases you get an undef. And then you compare the 1 or undef with the 
$1. Not likely to be what you meant.

>         do an action;
>     }else{
>         do some other action;
>         undef $tempitem;
> 
> or
> 
> If ($item =~ /^(\D+)(\d+)/ {)
>     If ($1 eq defined(!$tempitem)) {

This is even more crazy :-)

>        do an action;
>     }else{
>         do some other action;
>         undef $tempitem;


Jenda
===== [EMAIL PROTECTED] === http://Jenda.Krynicky.cz =====
When it comes to wine, women and song, wizards are allowed 
to get drunk and croon as much as they like.
        -- Terry Pratchett in Sourcery


-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>


Reply via email to