in reply to Searching for online perl bug reports

You can search for information on perl5 bugs at http://rt.perl.org. Note that bugs for some other projects are there as well.

For this particular problem, it isn't actually a bug: the ${a} syntax specifically ignores lexical variables, and looks only for dynamic variables of that name. If you want to avoid the following [$d] from being treated as an array reference, you can escape the bracket:

print ".D($c\[$d])\n";
or split the string in two:
print ".D($c" . "$d])\n";
or use printf:
printf ".D(%s[%s])\n", $c, $d;
whichever you find most appropriate for the need.

Hugo