トップ «前の日記(■2004-02-01) 最新 次の日記(■2004-02-03)» 編集

どんぞこ日誌

2003|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|07|08|12|
2007|01|04|08|12|
2008|01|02|03|04|06|07|08|10|11|12|
2009|01|02|04|05|06|07|08|09|11|12|
2010|01|03|04|07|08|10|11|12|
2011|01|02|03|04|05|06|07|08|10|12|
2012|01|02|03|05|06|07|08|09|10|
2013|01|02|07|08|09|
2014|08|09|
2015|08|
2016|06|07|12|
2017|01|03|08|
2018|03|
2022|03|
2023|03|
2024|02|

同人関連(どんぞこ楽屋) | 旧い雑文   


■2004-02-02

* [Perl] 車輪の再発明B!

 perl 質問箱のこのあたりから始まって「車輪の再発明」に関する話が延々と……。

 CPANは本当に便利なのですが、最初のうちは近寄りがたいものまた事実。そこで「これは便利で設置も楽」(だと私が思ったもの)を一つご紹介。IO::File::flockなどどうでしょう。名前の通り、flockするためのもの(なのでwindowsの場合、95や98では使えませんが2000やXPは○)です。

* IO::File::flockB!

use IO::File::flock qw(:flock);
 
# 排他ロックで書き込み 3秒でタイムアウト
# timeoutはalarmを使うのでwinでは使えないかも
 
$fh = new IO::File::flock $file, '>', LOCK_EX, 3
           or die "Time Out";
$fh->print("なんか");
$fh->close();
  これだけで、ファイルのopenからflockかけるのまで、全部やってくれます。Perl 5.003以降標準でついてくるIO::Fileを継承したモジュールなので、レンタルサーバでも、標準モジュールが使えさえすれば、利用できます(場合によってはflock使えないところも)。ソースをみたらwarningsプラグマとourを使っているのでPerl5.6以降でないと使えませんでした。(ちょっと書き換えれば動くのですが……)
 

* どこでもインストールB!

 このモジュールはIO-File-flock-0.09から入手できます。makeなんてしなくても、flock.pmをファイルに保存して、IO/File/ というディレクトリをつくってそこにflock.pmを置くだけでよいです(要は :: はディレクトリの区切りに対応)。SYNOPSISをみれば使い方もなんとかなるでしょう。ただこのSYNOPSISはタイプミスがあって、new IO::File::flockとなるべき所がnew IO::Fileになってます。最初コピペしたら全然flockが効かなくて悩みました(←ばか)

* Soar High Isami!B!

 知人からDVDプレーヤーを安く譲って貰いました。PCに付けたプレーヤーはときどきハングするので大助かりです。で、イサミの下を視聴。3クール目に入って暴走に磨きがかかるところが、もう最高。

本日のツッコミ(全2件) [ツッコミを入れる]
_ まこと (■2004-09-16 12:32)

散歩してたらたまたまみつけました。<br>IO::File::flockの作者ですm(__)m<br><br>体力があるときにwarnings,ourとSYNOPSISあたりは直しときますね。<br>バグ報告送ってもらってれば0.10のときに直したのになぁ....<br>#他にもなにかありましたらメールででどうぞ。日本語でOKです。

_ まかまか (■2004-09-16 23:01)

やや、確かにご報告するべきでした。今後はちゃんとレポートします(^^; ご対応ありがとうございます。

[]