大家好,我写了一段代码:
- Perl code
#!/usr/bin/perl -w use strict; use diagnostics; #my $dir="/tmp"; my $stm="my \$dir=\"temp\";"; #这行是想执行my $dir="temp" eval $stm; $stm="print \$dir ;"; #问题1:但是这行为什么没有把变量$dir的值temp输出来呢? eval $stm;
问题2,请问如果把#my $dir="/tmp";这行的注释删除掉,那么这个$dir与eval执行的$dir是不是同一个变量呢?
请分别讨论以上两个问题。谢谢大家!
------解决方案--------------------
my的作用域已经结束了。另外请你学会使用单引号,或者q。一堆\看着不费劲么。