2013-04-11 21 views
2

是否有可能在perl的here-doc部分中包含JQuery。 我試過但沒有成功。 這是我的代碼。這裏的文檔中的JQuery不工作

my $cgi = CGI->new();print header();print start_html("JQuery in perl"); 

print <<JS; 
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> 
<script><!-- 
$(document).ready(function(){ 
$("p").click(function(){ 
$(this).hide(); 
}); 
}); 
//--></script> 

<p>Click to hide</p> 
<p>Click to hide</p> 
<p>Click to hide</p> 
</body> 
JS 
print end_html(); 

但是,當我寫一個JavaScript函數,它工作正常

my $cgi = CGI->new();print header();print start_html("hello"); 
print <<JS; 
<script><!-- 
function show() {alert("Hello");} 
//--></script> 
<input type="button" value="Check" onclick="show()"> 
</body> 
JS 
print end_html(); 

我失去了一些東西明顯嗎?請建議。

+0

應該工作。如果直接調用'jQuery',會發生什麼?例如:'jQuery.method()'而不是'$()'。 – chrsblck 2013-04-11 21:04:24

回答

6

here-doc與雙引號字符串類似:計算變量。由於$(實際上是一個variable in Perl它將被進程的真實組ID所取代。用反斜槓將其跳出。

+0

這就是問題所在。尼斯趕上 – chrsblck 2013-04-11 21:06:52

+4

或使用'單引號HEREDOC'。 'print <<'JS';' – drquicksilver 2013-04-11 21:09:13

+3

或者使用模板系統。 – friedo 2013-04-11 21:12:21