タグ

ブックマーク / chaipa.hateblo.jp (3)

  • Perlでのファイルロックについて - 小池啓仁 ヒロヒト応援ブログ By はてな

    Perlでのファイルロックでは、普通、flock関数を使用します。 flock関数の第1引数にはファイルハンドルを指定し、第2引数には以下のいずれかの値を指定します。 尚、 LOCK_SHやLOCK_EX等を使用する場合は、『use Fcntl ':flock';』宣言が必要です。 1(LOCK_SH):共有ロック(ブロキングモード) 2(LOCK_EX):排他ロック(ブロキングモード) 5(LOCK_SH | LOCK_NB):共有ロック(ノンブロキングモード) 6(LOCK_EX | LOCK_NB):排他ロック(ノンブロキングモード) 8(LOCK_UN):ロック解除(closeでもロック解除される) 1は、処理がファイルに対して他のプロセスの書込をロックし、処理終了まで他のプロセスを待たせます。 2は、処理がファイルに対して他のプロセスの書込読込をロックし、処理終了まで他の

    Perlでのファイルロックについて - 小池啓仁 ヒロヒト応援ブログ By はてな
  • ベアワード(Bareword)とは - 小池啓仁 ヒロヒト応援ブログ By はてな

    Bareとは、"剥き出しの"という意味で、Barewordとは、$,@,%,&,* などが先頭に付かないワードです。 通常、ベアワードな文字列、引数のないシステム関数、ファイルハンドル、ハッシュキー、ヒアドキュメントの終端文字などがベアワードとなります。 この内、ベアワードな文字列は、use strict にすると防げます(コンパイルエラーになる)。

    ベアワード(Bareword)とは - 小池啓仁 ヒロヒト応援ブログ By はてな
  • PerlでTrimする! - 小池啓仁 ヒロヒト応援ブログ By はてな

    VB系では、文字列の両端にあるスペースを削除するに有名なTrimがあります。 しかし、Perlでは、残念ながらTrimはありませんが、以下の正規表現で一発です。 $string =~ s/^\s*(.*?)\s*$/$1/; ちょっと解説です。 まずは、\sは、文字クラス[ \t\n\r\f](左端にスペース含む)と同義です。 始めに、文字列の先頭から\sの0回の連続にマッチさせる。 つぎに、任意1文字の0回の連続に最小マッチさせて、これを$1に記憶する。 そして、\sの0回の連続を後尾までマッチさせる。 最後に、文字列全体を$1で置換する。 以下のように、2回に分ければ、両端でも片方のみでも大丈夫です。 $string =~ s/^\s+//; $string =~ s/\s+$//; 追記:上記は、半角系のスペース文字に対するTrimです。全角系のスペースを考慮に入れると以下が参考にな

    PerlでTrimする! - 小池啓仁 ヒロヒト応援ブログ By はてな
  • 1