タグ

業とperlに関するkiyo_hikoのブックマーク (3)

  • Perlの型グロブと名前空間アクセスの応用

    Perlの名前空間と型グロブに関する応用的な話です。高度な内容ですので、少なくともリファレンスについては理解している人向けです。型グロブも多少知らないと難しいかもしれません。 型グロブとは 名前空間の取得と操作 外部モジュールと名前空間 名前空間の開放と変数の開放 名前空間まとめ 応用:動的な関数のフック 応用:ライブラリの自動リロード 具体的な方法 アンロードルーチン まとめ ※以下特に断りがない限りPerl 5.10での動作確認です。 型グロブとは Perlの名前空間にアクセスする際に出てくるものです。prefrefによれば型グロブには次のようなものがあります。 $scalarref = *foo{SCALAR}; $arrayref = *foo{ARRAY}; $hashref = *foo{HASH}; $coderef = *foo{CODE}; $ioref = *foo{I

    Perlの型グロブと名前空間アクセスの応用
    kiyo_hiko
    kiyo_hiko 2014/10/30
    なるほお。変数の再代入をふっくする業とかないかしら
  • Perlにおけるメタプログラミングのための基礎知識 - $ cat /var/log/shin

    例のごとくAmon2の実装を眺めていた所、Amon2::Web::Dispatcher::RouterBoomの解読で手が止まりました。使い方さえ分かれば無理に読む必要は無いわけですが、どうにも気になってしょうがないので仕組みを調べることにしました。コードの雰囲気からしてメタプログラミングしているということは分かるので、その辺りから掘り下げて調べた結果を、この記事でまとめています。 パッケージのシンボルテーブル シンボルテーブル パッケージのシンボルテーブルは、パッケージ名に二つのコロンを付けた名前の ハッシュに蓄えられます。 つまり、main のシンボルテーブルは %main::、または短く %:: となります。 同様に、先に述べたネストしたパッケージは %OUTER::INNER:: となります。 perlmod - Perl のモジュール (パッケージとシンボルテーブル) - per

    Perlにおけるメタプログラミングのための基礎知識 - $ cat /var/log/shin
    kiyo_hiko
    kiyo_hiko 2014/10/28
    メソッドを動的に登録するらしい
  • 連載企画 第1回 Perl で DSL する方法 - tokuhirom's blog

    昨年の YAPC の頃に書こうと思ってたネタを id:cho45 さんのひとことで不意に思いだしたのでここに記す。 まず、DSL とはなにか。この連載企画では↓こういうのを DSL とよぶことにします。 session 'testuser' => run { flow 'log in and out' => check { flow 'log in' => check { get 'http://localhost/'; fill form 'login' => { username => 'testuser', password => 'drowssap', }; content should contain 'log out'; }; flow 'log out' => check { get 'http://localhost/'; click href 'log out'; };

    kiyo_hiko
    kiyo_hiko 2013/03/27
    なるほど // このエントリーを読んで考え中の断片 (まだ動かない) → 「sub rule {my ($x, @xs) = @_; !@_ ? return : $x->() ? rule(@xs) : return} sub goal(&) {$_[0]}」
  • 1