タグ

perlとhackに関するkoyhogeのブックマーク (3)

  • PerlとRubyで省メモリなハッシュを使おう - mixi engineer blog

    サボっていた早朝ジョギング@駒沢公園を再開して2週間たち、やっと抜かれる数より抜く数の方が増えてきたmikioです。今回は、PerlRubyのハッシュの代用としてTokyo Cabinetを使うことでメモリ使用量を激減させられることを説明します。 抽象データベースAPI Tokyo Cabinetには抽象データベースという機構があり、先日、そのPerlRubyのバインディングをリリースしました。それを使うと、各種言語のハッシュとほぼ同じような共通したインターフェイスで、以下のデータ構造を利用することができます。 オンメモリハッシュ:各種言語に標準のハッシュと同じく、メモリ上でkey/valueの関係を表現する。 オンメモリツリー:メモリ上の二分探索木としてkey/valueの関係を表現する。 ファイルハッシュ:いわゆるDBMとして、ファイル上でkey/valueの関係を表現する。 ファ

    PerlとRubyで省メモリなハッシュを使おう - mixi engineer blog
  • PerlのXSからPerlの関数を簡単に呼び出せるようにしてみた (C++で) - moriyoshiの日記

    Perlの謎APIをwrapして、Perlスクリプトの関数をC++から簡単に呼び出せるようにしてみた。 てか、 リファレンスカウントを透過的に行えるようpimpl形式のコンテナを使ってみる mortalを透過的に行えるようcall_sv()による関数呼び出しを完全にブラックボックス化する って実験をやりたかっただけなのにDevel::BindPPとは完全に別プロダクトになっちゃいました。 test1() は、任意の数の引数を取り、引数の合計値を返す add()という関数 *1 を C++ から呼び出す例。 test2() は、MIME::Base64::encode_base64() を呼び出す例。 test3() は、複数個の値を返す関数を処理する例。 test4() は、perl::value() の演算子オーバロードのテスト。 #include <iostream> #include

    PerlのXSからPerlの関数を簡単に呼び出せるようにしてみた (C++で) - moriyoshiの日記
  • Perlの正規表現のバグ? (後編) - moriyoshiの日記

    追記: ケース4についての記述がなかったので言及。 前回の調査で、[[:print:]] と \p{IsPrint} は実は等価でないということが分かったわけだけど、これだけではまだ再現できなかった理由、つまり、 use encoding 'utf-8'; $_ = "\t"; # 1. マッチしない printf("%d\n", /[[:print:]]/); # 2. マッチする printf("%d\n", /^[[:print:]]/); # 3. マッチする printf("%d\n", /[[:print:]]$/); # 4. マッチする printf("%d\n", /^[[:print:]]$/); # 5. マッチしない printf("%d\n", /[[:print:]]+/); # 6. マッチする printf("%d\n", /^[[:print:]]+/);

    Perlの正規表現のバグ? (後編) - moriyoshiの日記
  • 1