Ваша основная проблема - интерполировать весь массив в вашу строку вместо переменной цикла ($_
в вашем случае, так как вы не указали один, но я предпочитаю дать ему имя).
Вы можете избежать экранирования "
s, используя другой разделитель для вашей строки:
use strict;
use warnings;
for my $world_no (1..20000) {
print qq!<div id="world$world_no" onclick="showDiv_postscreen(); hideDiv_welcomebuttons()"> </div>\n!;
}
Кроме того, «javascript:» необходим только для таких вещей, как <a href="...">
, где ожидается URL-адрес, и вы хотите вместо этого предоставить код javascript. Это не нужно для onclick, конечно, не дважды.