Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/9.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
unix shell脚本中的perl timegm()错误_Perl - Fatal编程技术网

unix shell脚本中的perl timegm()错误

unix shell脚本中的perl timegm()错误,perl,Perl,我试图在unix脚本中运行perl脚本。但是在执行它时,我得到了一个错误。没有timegm()perl函数,它可以正常工作。这是代码和错误消息 #!/bin/ksh echo“我在KSH” i=10 echo“以ksh表示的i值为$i” perl使用-e标志来执行perl。然后使用argument方法将shell变量传递给perl脚本。然后使用$ARGV[0] echo "I M IN KSH" i=10 echo "value of i in ksh is $i" perl -e ' pri

我试图在unix脚本中运行perl脚本。但是在执行它时,我得到了一个错误。没有timegm()perl函数,它可以正常工作。这是代码和错误消息

#!/bin/ksh

echo“我在KSH”
i=10
echo“以ksh表示的i值为$i”

perl使用
-e
标志来执行perl。然后使用argument方法将shell变量传递给perl脚本。然后使用
$ARGV[0]

echo "I M IN KSH"
i=10
echo "value of i in ksh is $i"
perl -e '

print "I M IN PERL\n";
use Time::Local;

my $i = $ARGV[0];
print "Value of i in perl $i\n";
$time_epoo = timegm(13,06,22,29,2,2016-1900);

print "$time_epoo"

'   $i

echo "BACK IN KSH"

使用perl的
-e
标志来执行。然后使用argument方法将shell变量传递给perl脚本。然后使用
$ARGV[0]

echo "I M IN KSH"
i=10
echo "value of i in ksh is $i"
perl -e '

print "I M IN PERL\n";
use Time::Local;

my $i = $ARGV[0];
print "Value of i in perl $i\n";
$time_epoo = timegm(13,06,22,29,2,2016-1900);

print "$time_epoo"

'   $i

echo "BACK IN KSH"

我真的不知道ksh插值规则,但我猜“my\$I=$I”中的第一个$会被转义以防止ksh插值。如果是这样,为什么“$time_epo=…”中的$in不也转义了呢?我认为mkHun的回答将消除变量插值中的任何潜在歧义,并解决您的问题。我并不真正了解ksh插值规则,但我猜“my\$I=$I”中的第一个$会被转义,以防止ksh对其进行插值。如果是这样,为什么“$time_epo=…”中的$in不也转义了呢?我认为mkHun的回答将消除变量插值中的任何潜在歧义,并解决您的问题。