$data eq "8000" or $data eq "0080"
the same as:
$data eq "8000" || $data eq "0080";
####
c:\@Work\Perl>perl -wMstrict -MO=Deparse,-p -le
"my $data = '8000';
;;
if ($data eq '8000' or $data eq '0080') { print 'yes 1'; };
if ($data eq '8000' || $data eq '0080') { print 'yes 2'; };
"
BEGIN { $^W = 1; }
BEGIN { $/ = "\n"; $\ = "\n"; }
use strict 'refs';
(my $data = '8000');
if ((($data eq '8000') or ($data eq '0080'))) {
print('yes 1');
}
if ((($data eq '8000') or ($data eq '0080'))) {
print('yes 2');
}
-e syntax OK
####
c:\@Work\Perl>perl -wMstrict -le
"my $data = '8000';
;;
if ($data eq '8000' or $data eq '0080') { print 'yes 1'; };
if ($data eq '8000' || $data eq '0080') { print 'yes 2'; };
"
yes 1
yes 2
####
c:\@Work\Perl>perl -wMstrict -MData::Dump -le
"my ($x, $y) = (4, 5);
;;
my @ra = (1, 2, ! 3, $x, $y);
dd \@ra;
;;
my @rb = (1, 2, not 3, $x, $y);
dd \@rb;
;;
print qq{but \$x and \$y are still $x and $y};
"
Useless use of a constant (3) in void context at -e line 1.
Useless use of private variable in void context at -e line 1.
[1, 2, "", 4, 5]
[1, 2, ""]
but $x and $y are still 4 and 5