#! /usr/bin/perl
@no = (1 .. 20000);
foreach(@no) {
print "<div id=\"world@no\" onclick=\"javascript:showDiv_postscreen(); javascript:hideDiv_welcomebuttons()\"> </div>\n";
} 这是我的perl脚本,但是如何让它每次都用一个新变量重写句子呢?
即如何将其输出
<div id="world1" onclick="javascript:showDiv_postscreen(); javascript:hideDiv_welcomebuttons()"> </div>
.
.
.
<div id="world20000" onclick="javascript:showDiv_postscreen(); javascript:hideDiv_welcomebuttons()"> </div>发布于 2011-07-21 17:28:46
print语句中的@使解释器感到困惑。而且,这也不是您想要的,因为print "@no"会打印出与join(' ',@no)相同的内容。相反,您希望将@no的每个元素插入到打印输出的字符串中:
#! /usr/bin/perl
use strict;
use warnings; #Always use these!
my @no = (1 .. 20000);
foreach(@no) {
print "<div id=\"world" . $_ . "\" onclick=\"javascript:showDiv_postscreen(); javascript:hideDiv_welcomebuttons()\"> </div>\n";
} 发布于 2011-07-21 17:34:53
您的主要问题是将整个数组插入到字符串中,而不是循环变量中(在本例中为$_,因为您没有指定一个变量,但我更喜欢给它一个名称)。
通过对字符串使用不同的分隔符,可以避免转义":
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不需要它,当然两次也不需要。
发布于 2011-07-21 17:29:21
#!/usr/bin/perl
my @no = (1 .. 20000);
foreach my $i (@no) {
print "<div id=\"world$i\" onclick=\"javascript:showDiv_postscreen(); javascript:hideDiv_welcomebuttons()\"> </div>\n";
}https://stackoverflow.com/questions/6773882
复制相似问题