Perl 5.9.5 では、先日書いた名前参照の入れ子が実際に使えるそうだ。しかし、何か実用的な使い道はあるのだろうか。
本を2冊購入。
明るい LED 懐中電灯(?)が欲しいと思い、適当に1個購入。UltraFire WF-602A1 \2,500。単3を1本使用するタイプ。型番でググってみても情報がほとんど出てこない。帰ってから、この前買った M-6000H で明るさを測ってみた。センサーから 50cm の距離で、1000〜2500lx 程度(使用する電池によって違いあり)。ちなみに今まで持っていた単4を1本使うライト(型番失念)は、70lx 程度。
他にもおもしろい本はないかと徘徊してみた。
坂本弁護士一家を死に追いやり、石原都知事の発言を 180度逆の意味に捏造し、今年に入ってからは、不二家の件などで捏造報道を行っているろくでなし放送局の TBS はさっさとつぶさねばなるまい。中でも最悪なのは、報道番組の皮をかぶった洗脳番組 NEWS23 だろう。NEWS23 の内容を信じている人がいるとすればオウム信者と同類である。
bregonig.dll を Perl 5.10 の $+{name}, $-{name}[n] 表記に対応させるために改造。\L, \U, \l, \u にも対応させたいが面倒で進んでいない。
対応作業中に思ったのだが、もしかして Perl だと、$+{$+{name}} のように、入れ子も使えるのだろうか。
s/^(?<select>[ab]),(?<a>.*?),(?<b>.*?)$/$+{$+{select}}/mg
上の正規表現に、
a,1234,abcd b,5678,efgh
というデータを食わすと
1234 efgh
になったりするのだろうか? 仮に Perl でできたとしても、bregonig.dll では対応する気はないのだが。
Perl 5.8 で確かめてみたところ、${$1} のように、数字による参照を入れ子にすることは可能だった。
Perl 5.9.5 は 5.10.0 の前の最後の開発版のリリースという扱いらしい。これ以降大きな仕様変更はしないらしいので、あの微妙に分かりにくい正規表現もそのまま変更なしということか。
昨日は %- の使い方がよく分からなかったが、上記サイトには例があった。
/(?<letter>.)(?<letter>.)(?<letter>.)/
という正規表現があったとき、最初の (?<letter>.) にマッチした値は $+{letter} または $-{letter}[0] で取り出せるようだ。$-{letter}[-1] ならば、最後の (?<letter>.) にマッチした値が取り出せるはず。
bregonig.dll では、onig_name_to_backref_number() を使っているところを、onig_name_to_group_numbers() を使うように書き換えれば、実装可能か。
Perl 5.9.5 では、正規表現が大幅に強化されたようだ。「perldoc きまぐれ訳」に情報がある。
Oniguruma の正規表現 と比較してみた。(perl595_onig.txt 参照)
Perl5 互換と称している bregonig.dll でも、これらの拡張にどう対応するか検討が必要だ。とりあえず bregonig.dll 側の問題は次の4つ。
\R, \g{n} 辺りは、bregonig.dll でも使いたいが、Oniguruma の対応が必要なので、どうなるか分からない。\g{n} は、番号指定後方参照の直後に数字を続けて書きたい場合に便利だが、Oniguruma の \g<n>, \g'n' と紛らわしい。代わりに \k<n>, \k'n' が使えるようになればいいかも。
Perl 5.9.5 の後方参照と部分式呼び出しが、Oniguruma との互換性が低いのが悩ましい。Oniguruma の方は、\k は後方参照、\g は部分式呼び出しときれいに分かれていて非常に分かりやすいのだが、Perl 5.9.5 では \k と \g を両方とも後方参照に使っており、部分式呼出しは (?n) あるいは (?&name) というのは複雑な上に統一感が取れていなくてどうも美しくない。(もっとも、\〜 は文字(列)や文字種を表すのに使い、(?〜) はパターンに使うという点では一応統一されているのかもしれないが。) Perl 5.10 の仕様はこれで確定なのだろうか?
パソコンに接続が可能なデジタルマルチメーター M-6000H を \8,700 にて購入。
まずは、応答速度をチェック。電池の電圧を測るのに掛かる時間を調べたが、あまり反応は早くないようだ。TKPH6A よりもさらに遅いかもしれない。むしろ、今まで使っていた P-10 の応答速度が例外的に速いと考えたほうがいいのだろうか?
騒音計、照度計、温度計の動作も簡単に確認した。室内の騒音は 50dB 以上。やはりパソコンがうるさいのだろう。
パソコンとの接続も確認した。M-6000H は USB 接続ではあるが、実際は USB-Serial 変換チップを内蔵しているだけである。変換チップは CP2101 を使用しているようだ。WinXP では、Windows Update 経由でドライバをインストールできた。Ts Digital Multi Meter Viewer もとりあえず問題なく動いているようだ。
電圧・電流などの情報をパソコンで記録・グラフ化できればいいなと思い、少し調査してみた。パソコンとの通信機能がある低価格のデジタルマルチメーターを調べてみたところ、MAS-344, M-6000M, M-6000H などが見つかった。通信機能があっても、パソコン側のソフトが使いづらいと駄目なので、ソフトの使い勝手も調べてみようと思ったが、あまり情報が出てこない。代わりに、Ts Digital Multi Meter Viewer というソフトを発見。説明を読んだ感じではなかなか良さそうなソフトである。M-6000H でも買って、このソフトを使うかな。この前買った TKPH6A みたいに反応が遅くなければいいのだが。
Bregexp.dll には、以前列挙したバグに加えてもう1件バグがあったのを忘れていた。
修正パッチも更新しておいた。
VxEditor 0.5.1 が公開されていた。同梱の bregonig.dll は、最新の Ver.1.31 になっていた。0.5.1 では、レジストリを使わないようになったのが大きな変更点のようだ。ちょっと試しに使ってみるかな。
自分の名前だけ敬称がないのは相変わらず。
VxEditor が2年ぶりに更新され、0.5.0 になっていた。bregonig.dll が同梱されていた。bregonig.dll 正式対応一番乗りはサクラエディタになるだろうと思っていたが、意外な伏兵が登場。同梱されているバージョンが Ver.1.00 と少々古いのが気になるところ。
謝辞に自分の名前が載っているが、何で自分だけ敬称がないのかな〜?
先月の spam メールの集計結果。着信拒否にならなかった spam が少なくとも 2212通。そのうち、@nifty の迷惑メールフォルダーでも Spam Mail Killer でも spam として認識できなかったものは 0通。