0
Я пытаюсь запустить скрипт perl внутри сценария unix. Но, выполняя его, я получаю сообщение об ошибке. Он отлично работает без функции timegm() perl. Вот код и сообщение об ошибке.perl timegm() ошибка внутри сценария оболочки unix
#!/Bin/КШ
echo "I M IN KSH"
i=10
echo "value of i in ksh is $i"
perl << _MYCODE_
print "I M IN PERL\n";
use Time::Local;
my \$i = $i;
print "Value of i in perl $i\n";
$time_epoo = timegm(13,06,22,29,2,2016-1900);
print "$time_epoo"
_MYCODE_
echo "BACK IN KSH"
------------------------OUTPUT WITH ERROR--------------
I M IN KSH
value of i in ksh is 10
syntax error at - line 7, near "="
Execution of - aborted due to compilation errors.
BACK IN KSH
-------------------------------------------------------
я не знаю правила КШ интерполяции, но я предполагаю, что первый $ в «моем \ $ I = $ я» экранируются, чтобы предотвратить Ksh от интерполирования Это. Если это так, почему бы не избежать $ in "$ time_epo = ..."? Я думаю, ответ mkHun устранит любую потенциальную двусмысленность в переменной интерполяции и устранит вашу проблему. –