<< 2007/08/ 1 1. 変更に強いコードとうまい設計を目指す覚え書き
2 1. まだ Perl で YAML は Syck が主流かな?
3 1. やっぱ Perl しんどい
2. 結局日本語周りをまとめた
4 1. なんかプレゼント当たったよ
5 1. やはり Realforce か
6 7 8 1. XHTML + CSS スキルセットは超重要
9 1. ジョジョ芸人見た
10 1. OSX でウィンドウ切り替え
2. psh - interactive shell with the power of perl
11 1. perlsh を OSX 10.3 + PPC 環境にインストール
2. インストール済みモジュール一覧
12 1. スティール・ボール・ランまで読んだ
13 14 1. 甘く見ていた
15 1. OSX 10.3(Panther) で Rails 1.2.x
2. ついに出た O'Reilly の JavaScript 第5版
16 1. Fink のアップデート一覧を取得
17 1. 夏休みの課題に Rails
18 19 20 1. tunnel 越し whois
21 1. Hash と map と key の順序
22 1. Realforce91U 3日目
2. Perl で引数の解釈と Usage の作成、のオレ流まとめ
23 1. Reminderfox が便利かも
24 1. ecb 入れてみた
25 1. ecb 続き
2. spamlinkcheck.rb を導入
26 1. またまた家鯖の確認不足に気づく
27 1. linkcheck よく分からず
2. なんか referer が表示されないな
28 1. spamlinkcheck.rb を外した
2. βloglines
29 1. spamlinkcheck.rb 再導入
2. Perl のオブジェクトについて最近理解した分のメモ
30 1. 最近の愚痴の感じ
31 1. Signature Editor -> Signature Switch 変更
>>
トップ «前の日記(2007-08-28) 最新 次の日記(2007-08-30)» 編集

2007-08-29 [長年日記]

_ spamlinkcheck.rb 再導入

今度は

  • spamlinkcheck.rb on
  • デバッグモード off

で。

referer が記録されつつ TrackBack spam が来ないかどうかを静観。

[追記] だいじょぶっぽい。デバッグモードが原因か?

Tags: Ruby tDiary

_ Perl のオブジェクトについて最近理解した分のメモ

以前勉強してから情勢(って)が変わってきたものや抜けていた部分のメモ。

  • Perl のオブジェクトは bless したリファレンス
    • 以前はハッシュリファレンスを bless するのが主流だった(と、自分は認識している)が、最近はスカラリファレンスを利用した Inside-Out Object もオシャレなのかも。
    • Class::Std を使うと便利
  • bless で結びつけられた package 名を取得するには以下の方法がある
    • ref
    • Scalar::Util の blessed
  • オブジェクトには実は便利メソッドがある
    • UNIVERSAL 嫁
    • isa() と can() がありゃ十分ちゃ十分か。なるほど。

ref は JavaScript の typeof のように使え、bless してないリファレンスに対して使うと以下の組み込みの型を返す。

  • SCALAR
  • ARRAY
  • HASH
  • CODE
  • REF
  • GLOB
  • LVALUE

package 以外のものが返って来てしまうという意味ではちょっと危険ではあるけど、それはそれとして ref は知っとくと便利だなと思った。Perl は奥が深いよ、ほんと。

PHP の is_a() と method_exists()、Ruby の Object#is_a? と Module#method_defined? に相当するのは、Scalar::Util を使って

defined( blessed( $ref ) ) && $ref->isa( package_name )
defined( blessed( $ref ) ) && $ref->can( method_name )

になるのかな?

今後 Class::Std を使うかどうかは分からない*1けど、自分の目的はレンタルスペースで CGI を動かすことではないし今後もそういうことはないと思うので、便利に使えるシーンがくるかもしれない。押さえておこう。

[2007-09-06 追記]メソッド一覧はやっぱ欲しいなぁと思ったけど UNIVERSAL にはそんな機能はない。Class::Inspector を使うのが楽らしい。Fink にも deb にもパッケージがあるので、まぁそれほど使うのに抵抗はないかな?

Tags: Perl

*1 というか新規に Perl スクリプトは書きたくないし、Class::InsideOut なんてのもあるらしい。