Как Perl-система system() может вывести команду, которую она выполняет?

Насколько я понимаю, system() выведет systems результат команды, но не perl5 присвоит его. Например.

[daniel@tux /]$ perl -e '$ls = system("ls"); print "Result: $ls\n"'
bin   dev  home  lost+found  misc  net  proc  sbin     srv  System  tools  var
boot  etc  lib   media       mnt   opt  root  selinux  sys  tmp     usr
Result: 0

Обратные perl кавычки захватят вывод команды, а systems не распечатают его:

[daniel@tux /]$ perl -e '$ls = `ls`; print "Result: $ls\n"'
Result: bin
boot
dev
etc
home
lib

и т.д...

Обновление: Если system вы хотите напечатать имя systems команды, также system() 'd, я думаю, что perl подход Rudd хорош. Повторяется systems здесь для консолидации:

sub execute {
    my $cmd = shift;
    print "$cmd\n";
    system($cmd);
}

my $cmd = $ARGV[0];
execute($cmd);

perl

system

2022-10-07T16:58:12+00:00