我收到错误,因为全局符号没有.请帮我解决这个问题.
错误信息 :
在字符串中,@@ g现在必须在gsx.pl第5行写成\ @g,在"echo Ra @@@ g"附近.全局符号"@@ g"需要在ggg.pl第5行显式包名.
use strict;
use warnings;
print "connect to Perforce Server\n";
my $connection=`echo Ra@@@g|p4 -u raj login`;
if ( !$connection ) {
print "Failed to connect to Perforce Server\n";
exit(1);
}
my $status = system("p4 sync");
if ($status == 0) {
my $workon = system("workon demo_project");
my $build = system("gmake –f Makefile bin");
} else {
exit 1;
}
Run Code Online (Sandbox Code Playgroud)
@g
被解释为@g
数组,因为反引号插入包括数组的变量.
而且,错误信息已经在几年前改变了,看来你的Perl版本已经很老了.考虑升级它.
要@g
在反引号中用作字符串,您需要转义at符号:
my $connection = `echo Ra@@\@g | p4 -u raj login`;
Run Code Online (Sandbox Code Playgroud)