andif ( $data eq "8000" || $data eq "0080" ) { $tid = "TEST"; $buf = "TEST SYSTEM"; } elsif ...
are strictly equivalent (in this case). As others have commented, || and or have different precedence, but that doens not make any difference here. Personally I prefer to use the lower precedence or when grooping to Boolean expresions, but that's a matter of taste and that's debatable.if ( $data eq "8000" or $data eq "0080" ) { $tid = "TEST"; $buf = "TEST SYSTEM"; } elsif ...
on the other hand is just wrong, although the compiler will assign a meaning to it. It is wrong in the sense that it is simply not doing what you intend: this is saying : if $data is "8000" or if "0080", which will be always true, because "0080" is a true value. So fix it as you said (with either of the two syntaxes shown at the beginning of this post) and your program should work properly.if ( $data eq "8000" || "0080" )
In reply to Re^5: perl unpack and matching the unpacked data
by Laurent_R
in thread perl unpack and matching the unpacked data
by james28909
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |