in reply to Bitwise & not working correctly in CGI script
It depends on the value of $job_type, I guess. It works fine for me (see below)
Addendum: Are you sure the value of $job_type is what you think it is?
#!perl use strict; use warnings; print "Content-Type: text/html\n\n"; print "<html><body>\n"; my @jobtypes = (32, 64, 64|128, 128|256, 64|256); for my $j (@jobtypes) { setBu($j); } print "</body></html>"; sub setBu { my $job_type = shift; my %bj = (64,'D', 128,'A', 256,'H'); print "<ul><li>Job type is $job_type:<ul>\n"; foreach my $flag (keys %bj) { my $bu = $bj{$flag} if ($flag & $job_type); # <solegaonkar> But, somehow, I find that the bitwise & return +s # true for all the values! Hence the end result is not good. # -- Does it? if ($bu) { print " <li>Bu is true for flag $flag</li>\n"; } else { print " <li>Bu is false for flag $flag</li>\n"; } } print "</ul></li></ul>\n\n"; }
|
|---|