考虑:
#! /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>
5条答案
按热度按时间tct7dpnv1#
您的主要问题是将整个数组插入到字符串中,而不是循环变量中(在您的示例中为
$_
,因为您没有指定一个变量,但我更喜欢给予它一个名称)。你可以通过为你的字符串使用一个不同的后缀来避免转义
"
s:另外,“JavaScript:“只在
<a href="...">
这类需要url,而你想提供javascript代码的情况下才需要,onclick不需要,当然也不需要两次。vfwfrxfs2#
velaa5lx3#
i5desfxk4#
print语句中的
@
会让解释器感到困惑。而且,这也不是你想要的,因为print "@no"
会打印出和join(' ',@no)
一样的东西。相反,你想把@no
的每个元素插入到打印出来的字符串中:yzckvree5#
我会考虑使用一个变量来计数,而不是定义一个范围。这可能感觉不那么直观,但事实并非如此。
此外,您可以使用
qq()
来代替转义双引号(\"
),这是等效的。