从另一个具有.pl扩展名的perl脚本执行一个不具有.pl扩展名的perl脚本

时间:2019-06-12 07:08:54

标签: perl

如何从Windows上另一个名为second.pl的perl脚本中执行名为“ first”(无扩展名)的文件的perl脚本?

第一个文件的内容:

#!/usr/bin/perl5.8.4 -w
>> Some code

second.pl的文件内容:

#!/usr/bin/perl
use strict;
use warnings;

system "first";

所以我的问题是,当我从Windows命令行执行文件“ first”时,它可以工作

但是如果我尝试使用system "first";从文件“ second.pl”运行它 它失败,并显示以下错误:

can't exec "first" : Not a directory at "second.pl" at line 6

1 个答案:

答案 0 :(得分:1)

Windows使用文件扩展名来确定如何运行文件。由于您没有扩展名,因此操作系统认为您正在尝试打开目录。

您可以通过将system "first";更改为

来解决此问题
system $^X, "first"

这将使Windows再次运行当前的Perl解释器,并将脚本名作为第一个参数传递,这将使Perl来运行它。