今日出会った 5.8 系と 5.10.0 の違い

use strict;

my $subclass = 'Test';

print 'hard ref : ' . (eval { defined ${"${subclass}::"}; 1 } ? 1 : 0), "\n";

sub foo { print 'foo' }

print 'check &foo : ' . (defined &foo ? 1 : 0), "\n";

5.8.8

hard ref   : 1
check &foo : 1

5.10.0

hard ref   : 0
check &foo : 1


perldelta - perl 5.10.0 の新機能
http://fleur.hio.jp/perldoc/mix/pod/perl5100delta.ja.html

use strict 'refs' は次のような defined() の引数でのハードリファレンスを無視していました:
これは適切に実行時エラー Can't use string as a SCALAR ref while "strict refs" in use ("struct refs" の影響下では文字列を SCALAR リファレンスとして使うことは出来ません)を生成するようになります.

ということらしい。

そもそも defined が &foo に対してリファレンスを参照するということも知らなかった。

autocmd

Vim documentation: autocmd
http://www.ac.cyberhome.ne.jp/~yakahaira/vimdoc/autocmd.html

社内の開発向けで保存時に -wc チェックをしてくれるよう .vimrc に以下を追加。

autocmd BufWritePost,FileWritePost *.p[lm] !perl -I./lib -wc <afile>
  • lib の読み先をしっかり解決したい。Perl 的にやるなら FindBin::libs とかか。
  • prove とか仕込みたいけど一旦落ち着いた。
続きを読む

vimの極め方を読んで

vimの極め方
http://whileimautomaton.net/2008/08/vimworkshop3-kana-presentation

準備編: vimrcを変更し易い環境を整える
* vimrcを即座に開く
* vimrcを即座にリロード

/と?の検索を楽にする

ざっと見て参考になる項目が多かったのだけどすぐに追加できるところから追加した。

" .vimrc を即座に開く/リロードする
nnoremap <SPACE>.       :<C-u>edit $MYVIMRC<CR>
nnoremap <SPACE>s.      :<C-u>source $MYVIMRC<CR>

" 検索時は / の入力をエスケープする
cnoremap <expr> / getcmdtype() == '/' ? '\/' : '/'

win 環境で入れてるもの

K2M
マウス操作をキーボードで行う。これと Firefox のアドオン Vimperator を使うことで極力マウスを使わなくしてます
シン覚え書
シンプルな付箋
Kbd Acc
キーリピートの速度調整
bluewind
ランチャー
WinT
ウインドウ透過。色々あるけどこれが使いやすい
Virtual Dimension
バーチャルデスクトップ
MigemizeExplorer
explorer で日本語を認識させる


2年前ぐらいに 2ndlife さんが紹介してたものが多いなぁ。
とりあえずインジケータに並んでるものだけ書いたので後でまた書くかもしれない。