=encoding euc-jp =head1 NAME =begin original vmsish - Perl pragma to control VMS-specific language features =end original vmsish - VMS 特有の言語機能を制御するための Perl プラグマ =head1 SYNOPSIS 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'; =head1 DESCRIPTION =begin original 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'. =end original インポートリストが指定されない場合、全ての可能な VMS 固有の機能が 仮定されます。 現在のところ、四つの VMS 固有の機能が利用可能です: 'status' (別名 '$?'), 'exit', 'time', 'hushed'。 =begin original If you're not running VMS, this module does nothing. =end original VMS で実行していない場合は、このモジュールは何もしません。 =over 6 =item C =begin original This makes C<$?> and C return the native VMS exit status instead of emulating the POSIX exit status. =end original これは C<$?> と C が POSIX 終了ステータスを エミュレートするのではなく VMS ネイティブな終了ステータスを 返すようにします。 =item C =begin original This makes C produce a successful exit (with status SS$_NORMAL), instead of emulating UNIX exit(), which considers C to indicate an error. As with the CRTL's exit() function, C is also mapped to an exit status of SS$_NORMAL, and any other argument to exit() is used directly as Perl's exit status. =end original これは C が (C をエラーとして扱う) UNIX exit() を エミュレートするのではなく、(ステータス SS$_NORMAL での)成功終了を 生成するようにします。 CRTL の exit() 関数では、C もステータス SS$_NORMAL での終了に マッピングされ、exit() へのその他の引数は直接 Perl の終了ステータスとして 使われます。 =item C =begin original 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). =end original これは全ての時刻をデフォルトの協定時(Universal Time)(別名グリニッジ標準時、 GMT)ではなく、ローカルタイムゾーンで扱います。 =item C =begin original 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: =end original これは 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" =begin original 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. =end original 「静粛」(hushed) フラグはコンパイル中グローバルスコープを持ちます: 'vmsish hushed' 以後にコンパイルされた exit() や die() のコマンドは、 実行後静粛にします。 "no vmsish 'hushed'" を実行すると静粛フラグをオフにします。 =begin original 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) =end original 静粛フラグのステータスはコンパイルエラーからの 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 =begin original 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. =end original 組み込みルーチン vmsish::hushed() を使って実行時にも「静粛」フラグを 制御できます。 引数なしの場合、静粛ステータスを返します。 vmsish::hushed は組み込みなので、呼び出すために "use vmsish" する必要は ありません。 EXAMPLE: if ($quiet_exit) { vmsish::hushed(1); } print "Sssshhhh...I'm hushed...\n" if vmsish::hushed(); exit 44; =begin original 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. =end original "use vmsish" によって「静粛」にコンパイルされた exit() や die() は 実行時に vmsish::hushed(0) で静粛を解除されないことに注意してください。 =begin original The messages from error exits from inside the Perl core are generally more serious, and are not suppressed. =end original Perl コアの内部からのエラー終了からのメッセージは一般的により重大で、 これらは抑制されません。 =back =begin original See L. =end original L を参照してください。 =begin meta Translate: SHIRAKATA Kentaro Status: completed =end meta =cut