2012-04-30 40 views
0

我需要解释为什么这个perl代码的输出是错误的,但我不明白'\'在perl中的含义。 这是学校工作''在此perl脚本的上下文中是什么意思

#!/user/bin/perl 
$x=5; 
$y=\$x; 
print "$x , $y, $$y \n"; 
$x=6; 
print "$x , $y, $$y \n"; 
$y=4; 
print "$x , $y, $$y\n"; 

也是这样的,输出它给。

5 , SCALAR(0x8daaa0), 5 
6 , SCALAR(0x8daaa0), 6 
6 , 4, 
+0

'SCALAR(0x8daaa0)'是在打印时如何在perl中引用另一个变量。这个词将描述参考的类型(HASH,ARRAY,SCALAR ..)。 – TLP

+0

仅供参考,如果答案是“正确的”,请点击旁边的复选标记来标记 –

+0

请始终使用'use strict;使用警告;'! – ikegami

回答

1

\需要引用它后面的变量。

要显示warnings,添加:

use warnings; 
+0

谢谢你,告诉我什么是错的,现在我只需要弄清楚如何解决它! – AlecWiese

6

\是参考操作。 $y现在持有对$x的引用。所以$$y$x

有关更多信息,请参阅perldoc perlreftut

+0

好的,谢谢你的帮助! – AlecWiese

+0

为perlreftut +1,我的收藏之一 –