スパムフィルタをすり抜けてきたspamが来たので, ソースだけを表示してみた
All contents of this email are protected by US copyright lawみたいな事が書いてあった, spamのくせに生意気である
問題は, このメールの送信者が詐称されて私自身になっている件, 私は誰の著作権を守ればいいのだろうか
自作Perlモジュールで, 常に全体をコンパイルするのは勿体無いという人用, ある種のJIT的な動作になる
使うには以下のようにコードを変更する
これで任意の関数をモジュール本体から分離できる
存在しない関数名を叩いたときのエラーがAutoLoaderのものになるが, それ以外は普通に使えるはずである
以下, tipsと注意点
まぁやり方はこれがperlのperlたる所以色々あるだろうけど, 以下に一例
use strict; use warnings; # 引数: モジュール名 # 返値: モジュール名 or 空リスト(失敗時) sub load_module($) { my $mod = shift; return eval "require $mod;" ? $mod : (); } # 引数: モジュール名のプレフィックス # 返値: モジュール名のリスト sub load_modules($) { my $modprefix = shift; my @modlist; (my $moddir = $modprefix) =~ s/::/\//g; opendir my($dir), $moddir; foreach my $mod (readdir $dir) { next unless $mod =~ s/^(.+)\.pm$/${modprefix}::$1/; push @modlist, load_module $mod; } closedir $dir; return @modlist; } # 実行例 foreach my $mod (load_modules 'plugins') { print $mod->name(), "\n"; }
こんな感じで後はモジュール名についてforeachまわしたりとか, ロード時にinit()でコールバックを登録させるようにしたりとか, 好きに出来そうである
s/AutoLoader qw(AUTOLOAD)/SelfLoader/; s/__END__/__DATA__/;
AutoSplit呼ぶ必要もないし, こっちのほうが便利そうである
デバッグ時に __DATA__ をコメントアウトする手法は問題なく使える, 末尾にダミーの __END__ や __DATA__ も要らないみたいである
なんで最初からこっちを使わなかったんだろうか… > 昨晩の自分
当然だけど __DATA__ を使うプログラムでは読む順番とかに気をつけないとひどい目に遭うはず
…けど, そんなものを使おうと思ったことは今まで1度も無いからいいや
また, AutoLoaderと違ってサブルーチンスタブは生成してくれないので, 引数チェックを行いたければ SelfLoader->load_stubs(); を __DATA__ の前においておく必要がある模様, これをやるとデバッグ時にもダミーの __DATA__ が要るみたいである
…でも, これも use strict や use warnings みたいにデバッグ中だけ有効ならそれで十分な代物かもしれない
ただし, 継承とかを使う場合は必須らしい
AutoLoaderとの性能面での得失は perldoc SelfLoader に書いてあるが, 以下の通り
今日外に出ることもなさそうなので, もうまとめておくか
5連休中, 外出した日は3日, 我ながら良い成績である
なお, 外出の定義は, 住んでいるアパートの共有部分から外に出る扉をくぐることとし, 郵便物のチェックは含まない, この定義ではごみ捨ては含まれるが連休中に該当する日は無いので気にしない
ちなみに3日とも買い物, うち1日は近所のコンビニなんだけどね
と, 大々的に言う事の是非について
注意: 別に今日が狐の誕生日というわけじゃないです, あしからず
わざわざ祝えと言うのか厚かましいと考える向きもあるかと思われるが, 私はむしろありじゃないかなと思うのです
誕生日は基本的には祝われればうれしいものの, 誕生日を知らない人はという疑問や, 重複とかの問題は無視, まぁ無視できるほどにしか知人が居ないのですが知人の数だけある誕生日をすべて憶えておくことは私には出来ない
数日前に偶然mixiのカレンダーなどの媒体で誰かの誕生日を見つけたりすると, 祝わなければなという気持ちにはなるけど, 次に気づくのは誕生日の1週間後だったりすることなどざらにあるわけで…
あとはこの年になると特に女性に対しておめでとうと言って喜ばれるかが完全に未知数となる問題, 心配するほど嫌がる人は居ないといわれてますが, 地雷は踏みたくないのです
ということで, 狐は祝えといわれれば喜んで誕生日をお祝いしますが, 言われなければスルーしてしまうのは単にきっかけが無かったからなだけです
ということで, 本日誕生日な某氏および来週誕生日な某嬢, 某氏, 再来週誕生日な某氏にはここでまとめておめでとうと言っておきます, まぁ全員ここ読んでないけどな
…しかし, そういう観点で考えた時に誕生日の前後6ヶ月はプレゼントを受け付けていますという某氏の発言には有り難味を一切感じないんだよなぁ, とか言ってみる
たまに居酒屋で注文したりして食べると幸せになれるもの
スーパーに売っていたので買ってみて食してみたが, あまりに薬臭く, 幸せは得られなかった
たこわさってこんなもんなんだろうか, それとも外れを引いたのだろうか
ということで, 余ったたこわさをおいしく食べられる方法を募集中です
いっそのこと味醂や醤油を使って味を付け直すとかでも可
久々に起動してみたらPSPを認識しなかった
もしやと思ってPSPのドライブレターをHDDやCD系のドライブは歴史的事情からかA:やB:には割り当てられないが, なぜかUSBディスクはこれらへの割り当てが可能B:からR:に変えてみたら動いた
どうやらドライブレターがA:やB:である場合を考慮していないらしい
まぁ, 使うことも多分無いのでドライブレターを戻して封印
光ファイバーの件の続き
1週間音沙汰が無かったので営業さんを突っついてみた
部署間で問題が宙吊りになっていたか, 単純に進捗が無かったからかは分からないが, 営業さんの手を離れたところで止まっていたらしく, 明日改めてつついてみてもらえるようである
これ, 放置してたらいつまで待たされるんだろうかとか, NTT的にはトラブル案件なんだろうかとか, もしかしたら面倒なクレーマー認定されているのかとか, 考え出したらきりが無いが, つつかないと動かない以上仕方がないのである
実際問題, 今日も先方からのコールバック予定時刻に電話が無かったのでこっちからかけなおす羽目になったしなぁ…
最近, 互いに関係ない分野で reincarnation という単語にしばしば遭遇する
狐的にはこの単語は朱紅い雫の魔法以外の何物でもないんだけど…
ちなみに意味は転生とか魂の再生とかその辺
15個に分かれていた家マシンのHDDを4つにまとめてみた
まぁ, Linuxな部分を全部LVMに押し込んだだけとも言うけど
さすがになれたもので, mkinitrdのLVM関連のバグで嵌ったところを除けば平穏無事に作業終了である
これでとかいいながら, タイムゾーンの関係で明後日の午前0時なんだけど明日リリースのFedora 11をいれる準備が整った…と思ってFedora Projectのサイトに行ってみたら, リリースが1週間延期になっていた
まぁダウンロードに光回線が使えると, 前向きに考えることとしよう
やっと光回線への移行が完了
工事日を明日と勘違いしていたが, 今日だった模様
2009/05/28は一般的には木曜日5月28日(金)A.M とか書かれたら勘違いするのは仕方がない
昨日のうちに別名, タコ足の増設 & 整理, 全体で15Aなのでタコ足の段数は気にしないでいいのだけど, 物理的な口の数が…電源工事しておいて良かった