4.特殊変数 $_ 各処理時のデフォルトの引数 $. # ファイルから読み込み時の現在の行数 $/ # 入力時のレコード区切り文字。通常は改行。 $, # 出力時の項目区切り文字。print @xx; の時に有効 $" # 出力時の項目区切り文字。print "@xx"; の時に有効 $\ # 出力時の行末文字。print "$xx"; の後ろに付加される $# # 出力時の数値形式。通常は"%.20g"。詳細はprintfを参照 $% # 出力時の現在のページ番号 $= # 出力時の現在のライン数 $- # 出力時の残り行数 $~ # 出力時のフォーマット名(デフォルトはハンドル名と同じ) $^ # 出力時のヘッダフォーマット名 $| # 0以外が代入されると出力をバッファリングしなくなる。 $$ # プロセスID $? # 最後に実行されたコマンドのステータス $& # パターンマッチにマッチした部分文字列 $` # パターンマッチにマッチした部分の前側の文字列 $' # パターンマッチにマッチした部分の後側の文字列 $+ # パターンマッチの最後の()に対応する文字列 $* $0 # perlスクリプトのコマンド名 $数字 # パターンマッチの際の()に対応する文字列 $[ # 配列の最初の添え字。通常は0。 $] # perlのバージョン情報 $; # 高次元連想配列の添え字の区切り文字 $! # エラー番号、もしくはエラー文字列 $@ # 直前のeval, require, do コマンドのエラーメッセージ $< # このプロセスの実ユーザーID $> # このプロセスの実効ユーザーID $( # このプロセスの実グループID $) # このプロセスの実効グループID $ $^D # デバッグフラグの値 $^F # システムファイルディスクリプタの最大値 $^I # -iオプションで指定した拡張子の名前 $^L $^P # デバッガが使用する内部フラグ $^T # スクリプトを実行した時刻 $^W # 警告スイッチの現在値(-wオプションで指定した値) $^X # perl自身の起動時の名前 @_ # サブルーチンへの引数 @INC # perlライブラリ検索ディレクトリ %INC # 読み込まれたライブラリファイルの配列 __LINE__ # スクリプト中の現在の行数 __FILE__ # スクリプトのファイル名 ファイル検査 次のようにして、ファイルが書き込み可能かどうかなどを検査することができます。 # ファイル名で指定する if (-w "file.txt") { print "書き込み可能Write\n"; } # ファイルハンドルで指定する open(IN, "file.txt"); if (-r IN) { print "読み込み可能\n"; } close(IN); # アンダーライン( _ )は最後に検査されたファイルを示す if (-r "file.txt") { print "読み込み可能\n"; } if (-w _) { print "書き込み可能\n"; } # stat()を用いた例 stat("file.txt"); if (-r _) { print "読み込み可能\n"; } 次のような検査が可能です。(UNIXでしか意味の無い物も多いです) -r # 読み込み可能であれば -w # 書き込み可能であれば -x # 実行可能であれば -o # 自分のものであれば -R # 実uid/gidで読み込み可能であれば -W # 実uid/gidで書き込み可能であれば -X # 実uid/gidで実行可能であれば -O # 実uidのものであれば -e # 存在すれば -z # サイズが0であれば -s # サイズが0でなければ(ファイルサイズを返す) -f # 通常ファイルであれば -d # ディレクトリであれば -l # シンボリックリンクであれば -p # 名前付きパイプであれば -S # ソケットであれば -b # ブロック型スペシャルファイルであれば -c # キャラクタ型スペシャルファイルであれば -u # setuidビットが立っていれば -g # setgifビットが立っていれば -k # stickyビットが立っていれば -t # ファイルハンドルが tty としてオープンされていれば -T # ファイルがテキストファイルであれば -B # ファイルがバイナリファイルであれば -M # perl起動時における、ファイルの更新時刻からの日数 -A # perl起動時における、ファイルの参照時刻からの日数 -C # perl起動時における、ファイルの作成時刻からの日数