Как известно, cmd.exe поддерживает
перенаправление (pipe) вывода программ:
$ echo hello | grep hello
hello
Также известно, что если зарегистрировать скрипт через реестр (HKCR\.pl @="perlfile", HKCR\perlfile\shell\open\command @="perl.exe %1"), то можно запускать скрипты прямо в терминале:
$ echo print 123; > hello.pl
$ cat hello.pl
print 123;
$ hello.pl
123
Ну и, наконец, можно зарешистрировать расширение файла:
SET PATHEXT=%PATHEXT%;.PL
Тогда можно запускать скрипты вообще не указывая оное:
$ hello.pl
123
$ hello
123
Всё бы хорошо, но в таких случаях ломается перенаправление вывода:
$ echo 123 | cat
123
$ perl -e "print 123" | cat
123
$ hello.pl | cat
$
Кто-то знает рецепт для лечения?