タグ

ブックマーク / mt.endeworks.jp (5)

  • Devel::Coverとexec() - D-6 [相変わらず根無し]

    Devel::Coverとexec() 2011年9月 8日 12:08 D | ブログ記事のURL | コメント(0) | トラックバック(0) Devel::Coverって便利な道具なんですが、なんかfork + execするとうまく動きませんでした。ずっと見て見ぬ振りしてたんだけど、そういうわけにもいかなくなったので、二日ほどずっとその挙動をprintデバッグで追いかけていったら大体把握できた。 すごくはしょって言うと、Devel::Coverは裏のXSレベルでEND {} にあたる部分とかにコードを挿入してて、元のコードが #!perl exec "/bin/ls" だったとしたら、Devel::Coverをuseすると概念的には #!perl END { do_interesting_stuff() } exec "/bin/ls" という事をするようになる。PPの場合だとe

    kanetann
    kanetann 2011/09/08
  • Brahman: a supervisor clone in Perl (under development) - D-6 [相変わらず根無し]

    Brahman: a supervisor clone in Perl (under development) 2011年6月13日 15:57 D | ブログ記事のURL | コメント(0) | トラックバック(0) 週末にsupervisorっていうものについて話してる人がいたので、特に理由なくPerlでクローンを書いてみようと思った。というわけで当に基の部分まで書いた。名前はBrahman。神様の名前にしたかったのはプロセスの生死を管理するから。 繰り返すけど、特に理由はない。書きたかったから。ちなみに内部的には多分家と全然互換性はない。設定ファイルがだいたいクローンできればいいや、というくらい。 今のところできることは、例えば今daemontoolsで管理してるplakupサーバーがあったとして、こんな感じの設定を書くと立ち上がってstdout/stderrを一緒のログに保存

    kanetann
    kanetann 2011/06/13
  • say no to system perl - システム標準Perlを使わないススメ - D-6 [相変わらず根無し]

    say no to system perl - システム標準Perlを使わないススメ 2011年4月30日 10:06 D | ブログ記事のURL | コメント(0) | トラックバック(0) LinuxMac OS Xを使っていれば、大抵の場合/usr/bin/perl などの位置にPerlが入っていますが・・・これらを使うのはやめたほうがいい、というのが段々定説になりつつあります。 厳密に言うと、別に簡単なスクリプトを書くのにシステム標準Perlを使うのは問題ないのだけれども、CPANからモジュールをインストールするつもりならシステム標準Perlを使わないほうがいいでしょう、という事ですね。 自分としてはシステムPerlを使わない理由はふたつある。 ひとつはシステムPerlはそれに依存するものがあるため、それに変更を加えると何かが壊れることがあること。例えばついうっかりモジュールのバ

    kanetann
    kanetann 2011/04/30
  • Script::Sub::Importが大変いただけない件 - D-6 [相変わらず根無し]

    Script::Sub::Importが大変いただけない件 スクリプトからサブルーチンだけをインポートするScript::Sub::Importというモジュールを作成しました http://d.hatena.ne.jp/perlcodesample/20091130/1258979624 これは大変いただけない。perlcodesampleというIDがさらに初心者に信用させがちだからさらにいただけない。なので苦言を呈させてもらう。 命題はスクリプト内で使っている巻数のテストをしたい、なんだよね。なら、いくつかこんなひどいハックじゃないやり方がある。 まず第一の、そして一番まともな方法としては「モジュール化」を考えるべき。元のスクリプトがこんな感じだとする: #!/usr/bin/perl use strict; main(); sub main { # pseudocode... foo(

    kanetann
    kanetann 2011/02/18
  • Perlのmakeフェーズの挙動 - D-6 [相変わらず根無し]

    Perlのmakeフェーズの挙動 いわゆるCPANモジュール形式で展開されているモジュールに対して一般的に行う以下の手順: perl Makefile.PL make make test make install # 以下はモジュール作成者のみが気にするであろう make clean make disttest make dist make manifest これがそれぞれ何をしているのかって案外しられてないのかもしれない。 perl Makefile.PL - これはMakefile.PLを単純に実行している。この中では一般的にExtUtils::MakeMaker、Module::Build、Module::Install等のモジュールが使用され、インストールに使うMakefileというファイルを作る。これはmakeコマンドが自動的に検知して、使用してくれる。ちなみにmod_perl

  • 1