モダンPerl入門の脱字

読むだけ読んで実際に実行してなかったところをやってたらxsのところでエラーった。
30分悩んだ。

% make

Double.c: In function `XS_Double_calc_double':
Double.c:33: error: called object is not a function
make: *** [Double.o] Error 1

こんなエラーが出るんだ。
原因↓

#include "EXTERN.h"
#include "perl.h"
#include "XSUB.h"

MODULE = Double     PACKAGE = Double

int
calc_double(sv)
        SV *sv;
    PREINIT:
        int x;
    CODE:
        x = SvIV(sv);
-        RETVAL = x * 2
+        RETVAL = x * 2;
    OUTPUT:
        RETVAL


cなんだからセミコロンあって当然だろそんくらい気付けよググってもそこで詰まってるの俺だけじゃねーか

screenのコピーモードで検索

20分悩んだ。

% man screen

Searching:
  / Vi-like search forward.
  ? Vi-like search backward.
  C-a s Emacs style incremental search forward.
  C-r Emacs style reverse i-search.


/hoge って打ってc-r打ってもc-s打っても検索できない。何でやねーんと正ギレしてたら


偉い人「/hoge RETURNしろよ」


そのとーりですね!

クロージャを使うとき

クロージャについて理解した。要は機能の足りないオブジェクト。perl以外ではそうなのか知らんけど。
どこで使うのか、っていうのはコールバックするときしか知らないし思いつかない。