ActivePerl компании ActiveState позволяет выполнять сценарии на языке Perl в среде WSH. Среда самого языка Perl уже обладает множеством инструментов для работы с файлами и сетевыми подключениями, и если у вас уже есть достаточный опыт программирования на языке Perl, может возникнуть вопрос, чего же еще такого способна добавить ко всему этому среда WSH? Иными словами, зачем использовать cscript или wscript для выполнения программы на Perl, когда можно просто напрямую запустить perl. exe? Ответ заключается в содержимом среды WSH, имеющем простые средства доступа к объектам COM, OLE (Automation) и ActiveX. В среде WSH имеется полезный предопределенный объект $WScript. COM-объекты являются ключом, открывающим доступ к сетевой конфигурации, Active Directory и Windows Management Instrumentation (WMI). Возможно, вам не захочется связываться с объектами сценария Windows для управления файлами и каталогами, но ради инструментов управления системой на WSH все же стоит обратить внимание. Установщик ActivePerl создает два файловых сопоставления для файлов Perl: файлы. pi (Perl) сопоставляются с программой Perl. exe, а файлы. pis (PerlScriptFile) сопоставляются с WSH. Если для программ на Perl, которые нужно запустить в среде WSH, используется привычное расширение имени файла. pi, для их запуска нужно воспользоваться следующей командой: cscript /engine:Perlscript myscript. pl Поскольку может потребоваться запуск сценариев из командной строки или из Explorer, все значительно упростится, если для программ, предназначенных для среды WSH, будет использовано расширение. pis. Тогда можно будет дважды a WSH уже знает, что делать дальше. Можно также использовать PerlScript внутри структурированных файлов. WSF — об этом будет рассказано в главе 9 «Использование сценариев для управления компьютерами и сетями». При написании на Perl сценариев, предназначенных для запуска в среде WSH, нужно помнить о следующих важных обстоятельствах: Нельзя использовать привычные ключи командной строки Perl, например — w: необязательные значения должны устанавливаться непосредственно в сценарии. Любые аргументы, указанные в cscript или wscript, не помещаются в массив ARGV. Вместо этого аргументы командной строки должны извлекаться из коллекции $WScript->Arguments.