vmsish-1.02 > vmsish


vmsish - Perl pragma to control VMS-specific language features

vmsish - VMS 特有の言語機能を制御するための Perl プラグマ


    use vmsish;

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

    use vmsish 'hushed';
    no vmsish 'hushed';

    use vmsish;
    no vmsish 'time';


If no import list is supplied, all possible VMS-specific features are assumed. Currently, there are four VMS-specific features available: 'status' (a.k.a '$?'), 'exit', 'time' and 'hushed'.

インポートリストが指定されない場合、全ての可能な VMS 固有の機能が 仮定されます。 現在のところ、四つの VMS 固有の機能が利用可能です: 'status' (別名 '$?'), 'exit', 'time', 'hushed'。

If you're not running VMS, this module does nothing.

VMS で実行していない場合は、このモジュールは何もしません。

vmsish status

This makes $? and system return the native VMS exit status instead of emulating the POSIX exit status.

これは $?system が POSIX 終了ステータスを エミュレートするのではなく VMS ネイティブな終了ステータスを 返すようにします。

vmsish exit

This makes exit 1 produce a successful exit (with status SS$_NORMAL), instead of emulating UNIX exit(), which considers exit 1 to indicate an error. As with the CRTL's exit() function, exit 0 is also mapped to an exit status of SS$_NORMAL, and any other argument to exit() is used directly as Perl's exit status.

これは exit 1 が (exit 1 をエラーとして扱う) UNIX exit() を エミュレートするのではなく、(ステータス SS$_NORMAL での)成功終了を 生成するようにします。 CRTL の exit() 関数では、exit 0 もステータス SS$_NORMAL での終了に マッピングされ、exit() へのその他の引数は直接 Perl の終了ステータスとして 使われます。

vmsish time

This makes all times relative to the local time zone, instead of the default of Universal Time (a.k.a Greenwich Mean Time, or GMT).

これは全ての時刻をデフォルトの協定時(Universal Time)(別名グリニッジ標準時、 GMT)ではなく、ローカルタイムゾーンで扱います。

vmsish hushed

This suppresses printing of VMS status messages to SYS$OUTPUT and SYS$ERROR if Perl terminates with an error status. and allows programs that are expecting "unix-style" Perl to avoid having to parse VMS error messages. It does not suppress any messages from Perl itself, just the messages generated by DCL after Perl exits. The DCL symbol $STATUS will still have the termination status, but with a high-order bit set:

これは Perl がエラーステータスで終了したときに VMS ステータスメッセージを SYS$OUTPUT と SYS$ERROR に出力するのを抑制し、「unix 風」Perl を想定している プログラムが VMS エラーメッセージをパースする必要をなくします。 これは Perl 地震からのメッセージは抑制せず、 Perl 終了後 DCL によって 生成されるメッセージだけを抑制します。 DCL シンボル $STATUS には終了ステータスが入ったままですが、最上位ビットが セットされます:

EXAMPLE: $ 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"

The 'hushed' flag has a global scope during compilation: the exit() or die() commands that are compiled after 'vmsish hushed' will be hushed when they are executed. Doing a "no vmsish 'hushed'" turns off the hushed flag.

「静粛」(hushed) フラグはコンパイル中グローバルスコープを持ちます: 'vmsish hushed' 以後にコンパイルされた exit() や die() のコマンドは、 実行後静粛にします。 "no vmsish 'hushed'" を実行すると静粛フラグをオフにします。

The status of the hushed flag also affects output of VMS error messages from compilation errors. Again, you still get the Perl error message (and the code in $STATUS)

静粛フラグのステータスはコンパイルエラーからの VMS エラーメッセージの 出力にも影響を与えます。 こちらも、 Perl のエラーメッセージ(および $STATUS のコード) は得られます。

EXAMPLE: use vmsish 'hushed'; # turn on hushed flag use Carp; # Carp compiled hushed exit 44; # will be hushed croak('I die'); # will be hushed no vmsish 'hushed'; # turn off hushed flag exit 44; # will not be hushed croak('I die2'): # WILL be hushed, croak was compiled hushed

You can also control the 'hushed' flag at run-time, using the built-in routine vmsish::hushed(). Without argument, it returns the hushed status. Since vmsish::hushed is built-in, you do not need to "use vmsish" to call it.

組み込みルーチン vmsish::hushed() を使って実行時にも「静粛」フラグを 制御できます。 引数なしの場合、静粛ステータスを返します。 vmsish::hushed は組み込みなので、呼び出すために "use vmsish" する必要は ありません。

EXAMPLE: if ($quiet_exit) { vmsish::hushed(1); } print "Sssshhhh...I'm hushed...\n" if vmsish::hushed(); exit 44;

Note that an exit() or die() that is compiled 'hushed' because of "use vmsish" is not un-hushed by calling vmsish::hushed(0) at runtime.

"use vmsish" によって「静粛」にコンパイルされた exit() や die() は 実行時に vmsish::hushed(0) で静粛を解除されないことに注意してください。

The messages from error exits from inside the Perl core are generally more serious, and are not suppressed.

Perl コアの内部からのエラー終了からのメッセージは一般的により重大で、 これらは抑制されません。

"Pragmatic Modules" in perlmod を参照してください。