Я использую Кубунту 20.04. Perl-версия показывается perl -v как
perl 5, версия 30, subversion 0 (v5.30.0), созданный для x86_64-linux-gnu-thread-multi (с 50 зарегистрированными исправлениями, см. perl -V
Я только что сделал обновление apt-get, и с помощью менеджера пакетов Muon я обновил все установленные пакеты perl.
Но после этого perl 5 как и раньше, perl 6 у меня не появился.
Моя проблема не в том, что я использую простую системную команду, например
perl -we 'system("echo \"aaa\" > /tmp/WEx_args_file"); '
В этом случае файл записывается.
Но при использовании косвенного объекта, например
perl -we ' @WE_args = ("echo", " \"qqq\" > /tmp/WEx_args_file" ); $WE_retcod_system = система { $WE_args[0] } @WE_args; print "WE_retcod_system: ~", $WE_retcod_system, "~\n"; if($WE_retcod_system != 0) { die "\nsystem >>>YYY>>>@WE_args<<<YYY<<< не удалось: $?"; }; '
в этом случае файл не записывается.
Отображаемый вывод находится на экране:
"qqq" > /tmp/WEx_args_file
затем следует
WE_retcode_system: ~0~
Целый день я пробовал косвенный объект во многих вариациях. Я не нашел код, который нужно записать в файл tmp.
Пожалуйста, кто-нибудь знает решение?
=====
Пытаясь продолжить, я нашел очень хороший
IPC::Система::Простой
С помощью этого я намерен заменить мой код обратной кавычки
эхо -n "qqq" | ххд -g1
с функцией захвата, например
perl -мы используем IPC::System::Simple qw/capturex/; открыть(FHo, ">/tmp/Wex_args_file") или умереть; $WE_got_from_cpx = capturex("echo", "-n", ""qqq"", "|", "xxd -g1" ); print FHo "WE_got_from_cpx: ~", $WE_got_from_cpx, "~\n"; '
Насколько я понял, это правильное использование Capturex. Но новая проблема, это не работает.
Команда на правой стороне трубы, т.е.
ххд -g1
не выполняется, а только копируется. Результат
WE_got_from_cpx: ~"qqq" | ххд -g1~
Я боюсь, что эти модули в IPC::System::Simple основаны на ведущей точке, такой как «косвенный объект», так как только первый аргумент является выполняемой командой.
Как я могу использовать IPC::System::Simple, чтобы запустить всю функцию обратной кавычки?
С уважением
Антон