Другие уже объяснили причину - переменные внутри обратных кавычек интерполируются, так что ваша echo $PATH
фактически становится echo
, поскольку не объявлена $PATH
переменная.
Однако всегда ставьте use strict;
в начале каждого написанного вами Perl-скрипта.
Если бы вы сделали это, Perl сказал бы вам, что происходит, например:
Global symbol "$PATH" requires explicit package name at myscript.pl line 9
Чтобы переменные не былиинтерполировать, либо избегать их (например, \$PATH
), либо, если быть более точным, использовать, например, qx'echo $PATH'
.
Также, как уже отмечали другие, вызов echo $PATH
не имеет смысла в реальном мире;если вы пытаетесь получить содержимое переменной окружения PATH, просто используйте $ENV{PATH}
- однако, вы, возможно, только что использовали его как простой сокращенный демонстрационный случай.