goo blog サービス終了のお知らせ 

奈落のボレロⅡ:C3@work

-->奈落のボレロ

ワンライナー

2016-11-22 17:47:32 | Perl
コマンドラインで実行する1行Perlスクリプト。

$perl -ne "print if( /abc/ )" file.txt > result.txt

/abc/はサーチする文字列。
上記ワンライナーは以下の処理に等しい。


while (<>) {
  print if /abc/;
}

オプションはググレカス。

ビットマスク

2016-11-22 09:40:42 | Perl
# 8進数(先頭が0)で指定
umask 0022;

ビットマスクはsysopen関数やmkdir関数でファイルやディレクトリを作成した時のパーミッションに影響を及ぼす。
作成されるパーミッション = 指定したパーミッション & umaskで設定した値の否定


コマンドバッファリング

2016-11-16 11:30:08 | Perl
#select関数で$fhをデフォルトの出力先に設定
#デフォルトの出力ハンドル(通常はstdout)を$fhsにセーブ
my $fhs = select $fh;

#コマンドバッファリングを有効にする
$| = 1;

#デフォルトのファイルハンドルを元に戻す
select $fhs;

特殊変数 $| に1を設定するとコマンドバッファリングが有効になる。
コマンドバッファリングはデフォルトの出力先に対して有効になる。
select関数は現在(select関数実行前)のデフォルトの出力先を返却する。


Perlのデバッガ

2016-11-14 18:18:28 | Perl
$perl -d test.pl

・コマンド
s # ステップイン
n # ステップオーバー
c 行番号 # 指定した行番号まで移動(行番号なしの場合は、ブレークポイントまで)
c 関数名 # 指定した関数まで移動
v 行番号 #行番号付近のコードを見る
. # 現在の行を見る
p 変数 # 変数を表示する
x 変数 # 配列、ハッシュを再帰的に表示する
b 行番号 # 指定した行番号にブレークポイントを設定
b 関数名 # 指定した関数にブレークポイントを設定
h #ヘルプ
#コードの中でブレイクポイントを設定
$DB::single = 1;