タグ

ブックマーク / gfx.hatenadiary.org (3)

  • switch文とif連鎖の比較 - Islands in the byte stream (legacy)

    Perl 5.10.0でswitch文が導入されたことにより,ifの連鎖はもっとわかりやすい構文に書き換えられるようになった。 use feature 'switch'; given($foo){ when("bar"){ ... } when("baz"){ ... } default{ ... } } switch文の導入で便利になった一方,このwhen()で使われるマッチングは「スマートマッチ」という特殊な演算子によって行われることのコストが懸念される。 そこで,switch文とif連鎖の速度を比較してみた。 また,かつて単純なif連鎖とよく比較されたのは,ハッシュテーブルを参照する方式である。if連鎖の複雑さがO(n)なのに対し,ハッシュテーブルの参照はO(1)であるため,連鎖が長くなるとハッシュテーブルの方が高速であるとされる。『Perlベストプラクティス』では,ハッシュテーブル

    switch文とif連鎖の比較 - Islands in the byte stream (legacy)
  • Pure Perl HTML::FillInForm - Islands in the byte stream (legacy)

    id:charsbar氏のブクマを眺めていたらTowards a Pure Perl HTML::FillInForm: 61% tests passingという記事があった。 HTML::FillInFormが依存するHTML::ParserがXSモジュールであるため,Pure Perlで依存の少ないHTML::Parserを開発し,HTML::FillInFormをPure Perlモジュールにしたいという計画のようだ。 これは私も昔思ったことで,そこでHTML::FillInForm::LiteというPure Perlモジュールを書いたのだった。この時はもうXHTML前提でいいだろうと思いHTML4を入れてもXHTMLを出力するという仕様にしたのだが,HTML4は結局消えそうもないのでもう少し柔軟にしたほうが使いやすそうだ。 それにしてもHTML::FillInFormは古いモジュー

    Pure Perl HTML::FillInForm - Islands in the byte stream (legacy)
  • 『モダンPerl入門』のXSの章がすばらしすぎて吹いた - Islands in the byte stream (legacy)

    『モダンPerl入門』を軽く立ち読みしてきた。 主にXSの章を中心に読んできたのだが,これがすばらしい。私がXSに触れ始めたころは英語をほとんど読めなかったので,XSの習得にはものすごく苦労したのだった。perlxstutのサンプルコードを試したり,Perlのソースコードを読んだり,xsubppが変換したCのソースコードを読んだりしながら試行錯誤してようやくXSを身につけたのだ。そうやって苦労した数ヶ月分の知識が,『モダンPerl入門』を10分立ち読みしただけで俯瞰できてしまった。 いい時代になった。

    『モダンPerl入門』のXSの章がすばらしすぎて吹いた - Islands in the byte stream (legacy)
  • 1