Well, I guess I don't share your sense of esthetics -- I see no ugliness in that approach, just a usage that is "idiomatic" (and probably quite efficient) Perl coding, as opposed to being "conventional". But if being conventional makes you feel less "ugly", there's the more C-like method (but not abandoning Perlishness entirely):
$dqsel = 0;
my @a = reverse @exclude;
$dqsel += $a[$_]<<$_ for(0..$#a);
(I'm hoping I got the directionality right...)