Ошибка, которую вы получаете, говорит о том, что ваш системный perl является действительно древней версией ... Форма open
с тремя аргументами была добавлена в perl 5.6.0 (выпущен 22 марта 2000 г.), так что жалоба на ваш open
, имеющий слишком много аргументов, может показаться, что вы передаете свой код в perl 5.5.x или старше. Попробуйте perl -v
в командной строке, чтобы увидеть, какая версия системного Perl.
Что касается того, как решить эту проблему, назовите его в своем скрипте оболочки просто /home/daily/scripts/per_NODE_HR/gettotal.pl
вместо perl /home/daily/scripts/per_NODE_HR/gettotal.pl
, и он будет передан /opt/perl/bin/perl-w
, как указано в строке shebang (#!
), точно так же делает, когда вы запускаете его вручную с ./gettotal.pl
.
Кстати, вы также можете добавить use warnings
вместе с use strict
вместо того, чтобы полагаться на то, что ваш код запускается с perl -w
. Если вы используете perl gettotal.pl
, предупреждения не будут включены.