覚書:defaultアクションで、余分な(気がする)argumentsが付いてくる件

$c->req->argsにコントローラ名が含まれてしまう件についてどこかで読んだ記憶があって、さっき探し回ってしまったので一応リンクを書き留めておきます。mizzy.orgさんでした。
http://mizzy.org/program/catalystTips01.html
やっぱりindexとdefaultの挙動が合ってないように感じてしまいます。。。誰か説明してヽ(`Д´)ノクレヨ

ソースを貼付けるEmacsな方法

昨日のJavascriptの記事を書いていて思ったのですが、みなさんコードをブログに貼り付けるときってどうしているんですかね。

大抵のコードはEmacs上で編集しているのでEmacs用の http://fly.srk.fer.hr/~hniksic/emacs/htmlize.el というelispを使っています。MTなどのようなHTMLをそのまま書けるCMSじゃないとダメなのですが。(はてなダイアリーではスーパーpre記法しか使わないです。)

ソースコードが表示されているバッファでM-x htmlize-buffer(またはリージョンを指定してM-x htmlize-region)とすると、<pre>で囲って、実態参照に変換して、色付けされている部分を<span class="face名">で修飾してくれます。あとはこんなCSSを用意してます。

・・・あれ?見つからない。。。(´▽`*)アハハ
CSSはその内紹介します。たしか

pre {font-family: monospace; } /* serif,sans-serif,cursive,fantasy,monospaceしか使いません。 */
pre .face名 { /* Emacsでの設定と同じように*/ }

こんな感じだったはず。

解決:Scalar::Util::weakenを使おうとするとWeak references are not implementedで落ちる

Scalar::Util::weaken 使ってるスクリプトが全滅。
(略)
なんでだろーとおもってとりあえず Scalar::Util 再インストールしたら直った。
謎過ぎる。。同じバージョンだったのに。

うちでも同じ現象が発生しました。

$ perl -MScalar::Util=weaken -e 42
Weak references are not implemented in the version of perl at -e line 0
BEGIN failed--compilation aborted.
$ perl -MScalar::Util -e 'print Scalar::Util->VERSION'
1.18

CLONtypesterさんと同じく再インストールしたら直りました。

$ cpan -fi Scalar::Util
$ perl -MScalar::Util=weaken -e 42
$ perl -MScalar::Util -e 'print Scalar::Util->VERSION'
1.18
もう今さら確認はできないのですが、エラーが発生している時、Scalar/Util.pm中の「sub export_fail」が「sub import」だった気がするんです。。。本当です。。。信じてください。。。 ・・・勘違いかもしれません。。。夢でも見ていたのかも知れませんね。。。


追記:XSバージョンかどうかで挙動が変わるようです。 Mailing List Archive: Storable 2.15 on OSX 10.4 with maintperl fails "make test" 試しにXSを使わずにやってみました。まず既存のScalar::Utilをアンインストール。
$ cpan
cpan> look Scalar::Util
$ perl Makefile.PL
$ make uninstall
(unlink ...をコピペ実行)
そして、XSを使わずにテストしてみる。
$ make distclean
$ perl Makefile.PL -pm
$ make
$ perl -Mblib -MScalar::Util=weaken -e 42
Weak references are not implemented in the version of perl at - line 0
BEGIN failed--compilation aborted.
キタ━━━━ヽ(´Α` )ノ━━━━!!!! 次にXSバージョンでテストしてみる。
$ make distclean
$ perl Makefile.PL -xs
$ make
$ perl -Mblib -MScalar::Util=weaken -e 42
$
キタ━━━━ヽ(´∀` )ノ━━━━!!!! というわけで、バージョン番号が同じでもPurePerlバージョンかXSバージョンかの違いがあったということでした。 なお、Makefile.PLにオプションを指定しない場合は、Cコンパイラが利用可能であればXSになるようです。