Spec-Zone.ru › Perl 5.32

vmsish

СОДЕРЖАНИЕ

  • ИМЯ
  • СИНОПСИС
  • ОПИСАНИЕ

ИМЯ

vmsish - прагма Perl для управления функциями языка, специфичными для VMS

СИНОПСИС

use vmsish;

use vmsish 'status';        # or '$?'
use vmsish 'exit';
use vmsish 'time';

use vmsish 'hushed';
no vmsish 'hushed';
vmsish::hushed($hush);

use vmsish;
no vmsish 'time';

ОПИСАНИЕ

Если список импорта не указан, предполагаются все возможные функции, специфичные для VMS. В настоящее время доступны четыре функции, специфичные для VMS: «status» (также известная как «$?»), «exit», «time» и «hushed».

Если вы не работаете в среде VMS, этот модуль ничего не делает.

vmsish status

Это заставляет $? и system возвращать исходный код завершения VMS, а не эмулировать код завершения POSIX.

vmsish exit

Это заставляет exit 1 производить успешный выход (со статусом SS$_NORMAL), а не эмулировать UNIX exit(), который рассматривает exit 1 как указание на ошибку. Как и функция exit() CRTL, exit 0 также отображается на код завершения SS$_NORMAL, а любой другой аргумент exit() используется непосредственно в качестве кода завершения Perl.

vmsish time

Это заставляет все временные метки относиться к местному часовому поясу, а не к стандартному Всемирному времени (также известному как Гринвичское среднее время, или GMT).

vmsish hushed

Это подавляет вывод сообщений состояния VMS в SYS$OUTPUT и SYS$ERROR, если Perl завершается с кодом ошибки, и позволяет программам, ожидающим «unix-подобный» Perl, избежать необходимости разбирать сообщения об ошибках VMS. Оно не подавляет сообщения самого Perl, только сообщения, генерируемые DCL после завершения Perl. Символ DCL $STATUS по-прежнему будет содержать код завершения, но с установленным старшим битом:

ПРИМЕР: $ perl -e"exit 44;" Non-hushed error exit %SYSTEM-F-ABORT, abort DCL message $ show sym $STATUS $STATUS == "%X0000002C"

$ perl -e"use vmsish qw(hushed); exit 44;"   Hushed error exit
$ show sym $STATUS
  $STATUS == "%X1000002C"

Флаг «hushed» имеет глобальный охват во время компиляции: команды exit() или die(), скомпилированные после «vmsish hushed», будут «приглушены» при выполнении. Вызов «no vmsish 'hushed'» отключает флаг «приглушенный».

Статус флага «hushed» также влияет на вывод сообщений об ошибках VMS из ошибок компиляции. Опять же, вы всё равно получите сообщение об ошибке Perl (и код в $STATUS).

ПРИМЕР: use vmsish 'hushed'; # включить флаг 'hushed' use Carp; # Carp скомпилирован hushed exit 44; # будет приглушен croak('I die'); # будет приглушен no vmsish 'hushed'; # выключить флаг 'hushed' exit 44; # не будет приглушен croak('I die2'): # БУДЕТ приглушен, croak скомпилирован с hushed

Вы также можете управлять флагом «hushed» во время выполнения, используя встроенную функцию vmsish::hushed(). Без аргумента она возвращает статус hushed. Поскольку vmsish::hushed является встроенной, вам не нужно указывать «use vmsish» для её вызова.

ПРИМЕР: if ($quiet_exit) { vmsish::hushed(1); } print "Sssshhhh...I'm hushed...\n" if vmsish::hushed(); exit 44;

Обратите внимание, что exit() или die(), скомпилированные «приглушенными» из-за «use vmsish», не становятся «не-приглушенными» вызовом vmsish::hushed(0) во время выполнения.

Сообщения об ошибках из ядра Perl обычно более серьезны и не подавляются.

См. "Модули Perl" в perlmod.

© 1993–2020 Larry Wall and others
Licensed under the GNU General Public License version 1 or later, or the Artistic License.
The Perl logo is a trademark of the Perl Foundation.
https://perldoc.perl.org/5.32.0/vmsish

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API