Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
执行perl脚本时出现问题:./Test.pl:未找到命令_Perl - Fatal编程技术网

执行perl脚本时出现问题:./Test.pl:未找到命令

执行perl脚本时出现问题:./Test.pl:未找到命令,perl,Perl,Dos2Unix工作了…多亏了slayedbylucifer 现在我得到以下错误: Global symbol "$path" requires explicit package name at ./Test.pl line 4. Global symbol "$path" requires explicit package name at ./Test.pl line 5. Execution of ./Test.pl aborted due to compilation errors. 我

Dos2Unix工作了…多亏了slayedbylucifer

现在我得到以下错误:

Global symbol "$path" requires explicit package name at ./Test.pl line 4.
Global symbol "$path" requires explicit package name at ./Test.pl line 5.
Execution of ./Test.pl aborted due to compilation errors.
我正在执行我的程序 /Test.pl“/scratch/samaggar/AutoSuite”

代码如下:

 #!/usr/bin/perl
 use strict;
 use warnings;
 $path = $ARGV[0];
 process_files($path);

 sub process_files {
     my $path = shift;
     opendir (DIR, $path)
     or die "Unable to open $path: $!";

     my @files = grep { !/^\.{1,2}$/ } readdir (DIR);
     closedir (DIR);
     @files = map { $path . '/' . $_ } @files;

     for (@files) {
         if (-d $_) {
             process_files ($_);
         } else {
             print @files;
         }
     }
}

请建议。问题是什么..

在脚本上使用
dos2unix
,如下所示:

$ dos2unix <script_name>
请注意,我在定义
$path
变量时使用了
my

使用strict(使用strict;)时,声明应该是全局或局部的

我的$path;(帮助您将$path声明为局部变量)


我们的$path;(将$path声明为全局,以便导出)

您是否已授予文件执行权限
chmod+x Test.pl
是文件
Test.pl
Test.pl
,因为linux区分大小写哦,别忘了
使用strict;使用警告位于文件顶部。欢迎来到美丽的perlI世界,您已经检查了文件权限:-rwxrwx 1 samaggar dba 1529 Feb 24 21:33 Test.plAdded使用严格;使用警告;但同样的错误。。下面这样一个简单的脚本也可以正常工作:#/usr/bin/perl打印“Hello World.\n”;请帮忙!!检查我的更新答案。非常感谢。它成功了。现在我遇到了编译错误,比如:全局符号“$path”需要在./Test.pl第2行显示包名。全局符号“$path”要求在./Test.pl第3行显示包名。由于编译错误,./Test.pl的执行被中止。你能帮我吗?我希望我的脚本接受一些unix路径作为输入,它可以在该路径上列出其中的所有文件和目录;在脚本中使用“警告”
,然后运行脚本,然后以正确的格式发布问题中的错误。@user2150950,如果对您有帮助,您应该输入警告和答案。这是在StackOverflow上表示感谢的唯一方式。
$ cat test.pl 
#!/usr/bin/perl
use strict;
use warnings;
my $path=$ARGV[0];
print $path."\n";


$ ./test.pl "/scratch/samaggar/AutoSuite"
/scratch/samaggar/AutoSuite