eval请教

eval请教

#!/usr/bin/sh
eval '/usr/local/bin/users/standard/build36/perl5
-wS $0 ${1+"$@"}' if 0;

在PERL技术内幕中看到这么一段,
不知道什么意思

eval不是抛出异常吗,这里何用
man sh and search 'eval' in it
perldoc -f eval

谢谢
      eval EXPR
       eval BLOCK
               In the first form, the return value of EXPR is parsed and executed as if it
               were a little Perl program.


QUOTE:
原帖由 MMMIX 于 2008-12-17 09:38 发表
perldoc -f eval

这里的 eval 是双关语。同时还需要了解一下 Shell 的 eval 才行。
shell下,我只知道eval 后可以跟一个表达式,


QUOTE:
原帖由 flw 于 2008-12-17 10:09 发表

这里的 eval 是双关语。同时还需要了解一下 Shell 的 eval 才行。

看岔了 是 Shell 的 eval,不是 Perl 的


QUOTE:
原帖由 MMMIX 于 2008-12-17 10:22 发表

看岔了 是 Shell 的 eval,不是 Perl 的

不,这里的 eval 是双关语,既是 Shell 的,也是 Perl 的。


QUOTE:
原帖由 flw 于 2008-12-17 10:25 发表

不,这里的 eval 是双关语,既是 Shell 的,也是 Perl 的。

不过 Perl 的这个不会被执行。


QUOTE:
原帖由 MMMIX 于 2008-12-17 10:34 发表

不过 Perl 的这个不会被执行。

嗯,但是必须得是正确的函数名称,否则编译不过去。


QUOTE:
原帖由 flw 于 2008-12-17 10:09 发表

这里的 eval 是双关语。同时还需要了解一下 Shell 的 eval 才行。

Shell 的这个 ${1+"$@"} 和 "$@" 有嘛区别?我试了下好像结果都一样。