vars-1.01 > vars


vars - Perl pragma to predeclare global variable names (obsolete)

vars - 大域変数名を先行宣言するための Perl プラグマ (古いもの)


    use vars qw($frob @mung %seen);


NOTE: For variables in the current package, the functionality provided by this pragma has been superseded by our declarations, available in Perl v5.6.0 or later. See "our" in perlfunc.

注意: カレントパッケージの変数については、このプラグマが提供する機能は Perl 5.6.0 以降で利用可能な our 宣言に置き換えられました。 "our" in perlfunc を参照してください。

This will predeclare all the variables whose names are in the list, allowing you to use them under "use strict", and disabling any typo warnings.

これはリストにある名前の変数の全てを事前宣言し、"use strict" でも 使えるようにし、タイプミス警告を無効にします。

Unlike pragmas that affect the $^H hints variable, the use vars and use subs declarations are not BLOCK-scoped. They are thus effective for the entire file in which they appear. You may not rescind such declarations with no vars or no subs.

$^H ヒント変数に影響を与えるプラグマと異なり、use varsuse subs の宣言は BLOCK スコープではありません。 従って、現れたファイル全体に有効です。 このような宣言を no varsno subs で取り消すことはできません。

Packages such as the AutoLoader and SelfLoader that delay loading of subroutines within packages can create problems with package lexicals defined using my(). While the vars pragma cannot duplicate the effect of package lexicals (total transparency outside of the package), it can act as an acceptable substitute by pre-declaring global symbols, ensuring their availability to the later-loaded routines.

パッケージのサブルーチンの読み込みを遅延させる AutoLoaderSelfLoader のようなモジュールは my() を使って定義された パッケージレキシカルで問題を起こすことがあります。 vars はパッケージレキシカルの効果(パッケージの外側への完全な透過性)を 複製はできませんが、グローバルシンボルを事前宣言することで、後で 読み込まれるルーチンに対する能力を確実にする受け入れ可能な代用として 振る舞えます。

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