假设我有一个名为foo
的脚本,如下所示:
#!/bin/perl
eval 'exec perl5 -S $0 ${1+"$@"}'
if 0;
根据我的理解,如果我运行perl foo
或foo
,系统perl将用于执行我的脚本(即shebang行中指定的/usr/bin/perl
)。但是,如果我运行我的脚本./foo
,则perl5
语句中使用的perl解释为eval
。
我想验证我的理论,我需要找到一种方法来找出调用哪个perl解释器来执行我的脚本。
有没有这样做?
非常感谢!
EDIT1:我认为我修好了这个代码块,并在其上写了blog post。如果你仍然对上面的代码块感到困惑,请检查一下。
答案 0 :(得分:-1)
是的,您可以使用perl special veriable找到当前执行脚本的perl解释器版本。 $^V