Perl: здесь документы внутри оператора backtick - PullRequest
2 голосов
/ 08 апреля 2011

С учетом программы утилита , которая принимает команды из stdin и возвращает полезный код завершения, этот синтаксис perl работает:

my $result = `utility -switch1 -switch2 <<HERE
set ridin_round_the_world TRUE;
do this;
sign that;
try { 
   make some_girl; 
   return 0;
} 
except { 
   sleep --week;  
   exit 1;
}
HERE`;
print "result is $result\n";

Под "работает" я имею в виду запуск сценария perlУтилита, каналы в списке команд, ожидает выхода из утилиты и возвращает результат.

Но почему это работает?Откуда backtick знает, как вызвать программу, а затем передать ее в ЗДЕСЬ документ?Мне просто повезло с моей реализацией perl, или это стандартное поведение?

1 Ответ

5 голосов
/ 08 апреля 2011

Это оболочка-док, а не Перл. Попробуйте запустить в оболочке:

% cat <<EOF
some
thing
EOF
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...