ホームディレクトリを示します。chdir() を引数無しで実行すると HOME に移動します。
$ export HOME=/home/yamada
chdir() が引数無しで実行され、HOME が設定されていない場合に LOGDIR に移動します。
$ export LOGDIR=/home/yamada
ライブラリやモジュールを探す対象のディレクトリを指定します。複数指定する場合は、UNIX系ではコロン(:)、Windows系ではセミコロン(;) で区切ります。setuid、setgid モードや -t、-T オプション付きで実行されている場合は参照されません。
$ export PERL5LIB=/opt/myapp/lib:/opt/myapp/mod
PERL5LIB が指定されていない場合、代わりに PERLLIB が参照されます。
$ export PERLLIB=/opt/myapp/lib:/opt/myapp/mod
perl が @INC にカレントディレクトリを含まないように設定されている場合でも、PERL_USE_UNSAFE_INC に 1 を設定すると、@INC にカレントディレクトリを含めることを許容します。
$ export PERL_USE_UNSAFE_INC=1
デフォルトのオプションを指定します。-CDIMTUWdmtw のいずれかを指定できます。
$ export PERL5OPT=-w
use encoding プラグマでエンコーディング名を省略した場合のデフォルトのエンコーディング名を指定します。ただし use encoding プラグマは Perl 5.26 で廃止されています。
$ export PERL_ENCODING=utf-8
-C オプションと同じ意味を持ちます。
$ export PERL_UNICODE=S perl test.pl
perl を -d オプション付きで実行した場合のデバッガ読込コマンドを指定します。デフォルトは下記が実行されます。
BEGIN { require "perl5db.pl" }
$ export PERL5DB='BEGIN { require "perl5db.pl" }
真の値を設定するとデバッグ対象のコードがスレッドを使用していることを示します。
$ export PERL5DB_THREADED=1
1 を設定するとプログラム実行後にメモリ使用状況を表示します。perl が perl 版の malloc() を使用している場合、つまり perl -V:d_mymalloc が define となっている場合に利用可能です。
$ export PERL_DEBUG_MSTATS=1
perl が PERL_MEM_LOG オプション付きでコンパイルされている場合、メモリや SV に関する情報を出力します。PERL_MEM_LOG には number[m][s][t] を指定します。number はファイル記述子番号(1:STDOUT、2:STDERR)、m はメモリ、s は SV、t はタイムスタンプを示します。
$ export PERL_MEM_LOG=2mst
1 を設定すると、プログラム実行の前にすべてのライブラリを読み込みます。該当箇所のテストが呼び出されなくても関数名スペルミスなどを見つけることができるようになります。
$ export PERL_DL_NONLAZY=1
ファイルなどの入出力に使用する PerlIO 層を指定します。複数指定する場合はコロン(:)で区切ります。指定しない場合は、UNIX系では :unix:perlio、Windows系では :unix:crlf となります。
$ export PERLIO=:unix:perlio $ perl -e 'print "ABC\n"' | od -tx1z 0000000 41 42 43 0a # 改行コードは LF $ export PERLIO=:unix:crlf $ perl -e 'print "ABC\n"' | od -tx1z 0000000 41 42 43 0d 0a # 改行コードは CR LF
PerlIO には下記などがあります。
perl を -Di オプション付きで実行した場合、PerlIO のデバッグログを stderr ではなく指定されたファイルに書き出します。perl が DEBUGGING モードでコンパイルされている場合に有効です。
$ export PERLIO_DEBUG=/tmp/perlio.log
ランダム値のシード(種)を非負整数で指定します。
export PERL_INTERNAL_RAND_SEED=123
乱数を生成する際、srand() が無かったり srand() が引数無しで呼ばれた際のシード(種)を指定します。
$ export PERL_RAND_SEED=1234567
Perl は通常ハッシュの順序をランダムに決めるためのシード(種)値を起動時にランダムに決めますが、PERL_HASH_SEED でシードを指定することができます。Perl 5.8.1 で導入され、5.18.0 で16進数を指定できるようになりました。
$ PERL_PERTURB_KEYS=2 PERL_HASH_SEED=0x1234 perl test.pl
0 または NO を指定するとハッシュキーの探索順序は毎回同じになります。1 または RANDOM を指定するとキーの探索順序がランダム化されます。2 または DETERMINISTIC を指定するとハッシュへのキーの挿入によって変わりますが探索順序は毎回同じになります。
$ PERL_PERTURB_KEYS=2 PERL_HASH_SEED=0x1234 perl test.pl
1 を設定すると起動時にハッシュ関数、シード(種)、キー探索アルゴリズム(NO/RANDOM/DETERMINISTIC)を STDERR に出力します。
$ PERL_HASH_SEED_DEBUG=1 perl test.pl
Windows 環境で system() や `...` を実行する際に使用されるシェルを指定します。Windows 95/Me までは "command.com /c"、Windows XP 以降では cmd.exe が使用されます。
C:\>set PERL5SHELL=cmd.exe
1 を指定すると IFS(Installable File System)非互換の LSP(Layered Service Providers) を使用できるようにします。Windows ではソケットを通常のファイルハンドルとしてエミュレートするために IFS 互換の LSP を使用しますが、一部のファイアウォールソフトなどでは非互換の LSP を使用する必要があります。
C:\>set PERL_ALLOW_NON_IFS_LSP=1
オブジェクトやリファレンスのデストラクタの振る舞いを制御します。
$ export PERL_DESTRUCT_LEVEL=2
Perl 5.8.1 で追加されました。unsafe を設定すると遅延しないけど安全ではないシグナル処理となります。safe を設定すると安全だけどすこし遅延するつシグナル処理となります。
$ export PERL_SIGNALS=safe
Perl と VMS 専用の @INC のための論理デバイスを含む、 変換が隠されたルートとなる論理名を指定します。