执行perl时,’$’会转换为’2918 1174 2918′
我有一个吐出html页面的perl。 我想使用jquery操作html页面。 我已将所有jquery代码放入字符串并将该字符串放入其中
code
块。 但是当我执行perl时,我的所有$
符号都转换为2918 1174 2918
。 所以如果我的代码是$(".className")
现在我得到2918 1174 2918(".className")
有人可以指导我吗? 我的代码如下:
my $str = ""; $str .="$('.submitButton').click(function(){ alert('clicked submit button'); });"; $str .="Submitting"; my $file_name = "/mainDirectory/myfile"; my $fh; open ($fh, "> $file_name") or die "Can not open $file_name to write"; print $fh $str; close($fh);
$(
是Perl中的有效变量名称。
它表示当前进程的“真实组ID”,并包含用户所属的所有组ID的空格分隔列表。
要在插入字符串的上下文中使用文字$(...
in Perl,你需要转义它,例如:
\$(".classname")
您应该将HTML和JavaScript放在模板中以避免这些麻烦。 请参阅HTML :: Template , HTML :: Zoom和Template Toolkit ,以及Perl的其他模板工具。
您问题的直接解决方案是使用:
my $str = q{};
要么
my $str = <<'EO_HTML'; Submitting EO_HTML
尝试使用’jQuery’而不是’$。’ 它具有相同的含义,$只是简写。
阅读关于Perl的heredoc语法的这个小教程 。 当您需要插入完整的jQuery代码块时,双引号字符串看起来不实用。