Spec-Zone.ru › Perl 5.38

vmsish

СОДЕРЖАНИЕ

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

ИМЯ

vmsish - Perl-pragma для управления функциями языка, специфичными для 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;" Незаглушенное сообщение об ошибке выхода %SYSTEM-F-ABORT, прерывание Сообщение DCL $ показывать символ $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.

Состояние флага 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» во время выполнения, используя встроенную функцию 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 Modules" в perlmod.

© 1993–2023 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.38.0/vmsish

Spec-Zone.ru

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