タグ

Perlに関するmarkupのブックマーク (348)

  • メソッドチェーンの話 - Charsbar::Note

    たしかに使い方によっては非常に読みづらくなるのは事実だから、「あまり多用しないでほしい」という気持ちもわからないではない。 でも、このサンプルでそれを言うのはあんまりじゃなかろうか。 以下のようなメソッドチェーンは読むのが困難だ。 my $loader = Loader->new; my $book = $loader->load( 'Book' )->build loadメソッドが自分自身( $loader )を返却して、そこからbuildが呼ばれたのか、他のオブジェクトが返却され、そこからbuildがよばれたのかがわからない。 だから、あんまりメソッドチェーンを多用しないでほしい。Mojoのソースコードを読んでいてそう思った。 http://d.hatena.ne.jp/perlcodesample/20090217/1233844169 ふたつめの文をそのまま英語として、名詞と動詞に

    メソッドチェーンの話 - Charsbar::Note
    markup
    markup 2009/02/07
  • ファイルの変更を監視して、任意のコマンドを実行するスクリプト - (ひ)メモ

    d:id:hirose31:20070528:1180326347 のobserve-mtimeは、ファイルのmtimeの変更を定期的に確認してイベントを発火させてたんですが、それをLinuxのinotifyで置き換えてみました。 mtime監視だと調べてスリープしての繰り返しなので、変更してからイベントが起こせるまでちょっとタイムラグがあったんですが、inotifyを使うとファイルが変更された瞬間にぴこっとイベント発火できるのでこっちのほうがいいかも。 http://www.linux.or.jp/JM/html/LDP_man-pages/man7/inotify.7.html rsync + inotify = lsyncd | スラド デベロッパー Linux::Inotify2 CPANにはLinux::Inotifyというのもあったのですが、$Config{archname}が

    ファイルの変更を監視して、任意のコマンドを実行するスクリプト - (ひ)メモ
    markup
    markup 2009/02/05
  • CoroはCoroutineのCoro - PerlでFiber - はこべにっき#

    Ruby勉強会@関西でFiberについて勉強してきた - はこべブログ ♨でPerlでもGeneratorをうまく書けるモジュールがないかなーとこぼしていたところ. perlではCoroでほぼ同じ事ができるが、どちらにしろCoroを使う利点は1個1個をresumeすることじゃなくて 非同期に実装することだと思うのでgenerator云々はちょっと用途が違う気もするです http://b.hatena.ne.jp/lestrrat/20090202#bookmark-11922880 というブコメをいただきました.id:lestrratさんありがとうございます. Coroについて調べてみたところ,Coro::Introによると The natural application for these is to include a scheduler, resulting in cooperati

    CoroはCoroutineのCoro - PerlでFiber - はこべにっき#
    markup
    markup 2009/02/03
  • 「モダンPerl入門」書きました。 - D-6 [相変わらず根無し]

    「モダンPerl入門」書きました。 モダンPerl入門 今みたらAmazonでも表紙が入稿されたらしいので宣伝させていただきます。えー、モダンPerl入門というを翔泳社さんから出版させていただくことになりました。でも最初に断っておきます。誤字脱字はある気がします。ごめんなさいごめんなさい。日語不得手なんです(こういう時だけ帰国子女カードを使わせていただきます)。 ともあれ、内容的には自分が普段Perlを使っていて、同僚とかに知っておいてほしいな、って思っている実践的な内容ばかり書きました。このはたとえPerlがメインの言語ではなくともPerl仕事で使っていて、なおかつ初級〜中級のあたりでうろうろしてしまっている人たち向けに書いています。初級者向けの構文説明はほとんどありません。上級者向けのわけわかんないところはXS以外ありません(はい、XSの入門あります)。ほとんどは、Perlで業

    markup
    markup 2009/01/17
  • Perlゼミ(サンプルコードPerl入門)

    Perl入学式 全6回のPerl入門講座。東京、大阪、沖縄、札幌で開催。(東京は4月と10月スタート、それ以外は5月スタート) YAPC::Japan Perlを軸としたITに関わる全ての人のためのカンファレンス。 東京 吉祥寺.pm 五反田.pm 大阪 なにわPerl 沖縄 沖縄.pm

    markup
    markup 2009/01/14
  • perlは記号だらけでよくわからんという件 - libnitsuji.so

    最近「Perlは記号だらけでよくわからん」という話をよく聞くなーと思っていたのでちょっと考えてみた。 まずはよく見かけそうな記号変数(正式な呼称なんだっけ?)を思いつくかぎり列挙してみる。 $_ $! $@ $? @_ <>(これは変数じゃないか) このくらいかな。 で、「記号だからググれない」ということも聞きますが、これは直接Perlのドキュメント(perldoc)を参照するのが手っ取り早いです。 これはperlvarというドキュメントに載ってるので「perldoc perlvar」でググります。そうすると http://perldoc.perl.org/perlvar.html http://perldoc.jp/docs/perl/5.6.1/perlvar.pod とかが出てくるので、あとはブラウザ上で検索すればおkではないかと思います。 また、ブラウザよりもシェルが身近にある人は

    perlは記号だらけでよくわからんという件 - libnitsuji.so
    markup
    markup 2009/01/13
  • HTTP::Router をリリースしました - 烏賊様

    あけましておめでとうございます.新年一発目の CPAN モジュールリリースは HTTP::Router になりました. HTTP-Router-0.05 - Yet Another Path Router for HTTP - metacpan.org 次期 Rails に統合される Merb の Merb::Router を移植したようなものです. 詳しい使い方はリリース前からのユーザ且つ開発者でもある g:dann:id:dann さんが書いてくれましたると思います.

    HTTP::Router をリリースしました - 烏賊様
    markup
    markup 2009/01/06
  • tokuhirom blog

    Blog Search when-present<#else>when-missing. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: ${entry.path} [in template "__entry.ftlh" at line 3, column 25] - Reached through: #include "__entry.ftlh" [in template "entry.ftlh" at

    markup
    markup 2008/12/29
  • NanoAプラグインの書き方 - とほほのN88-BASIC日記

    そのまま使っても簡単にCGIが書けるNanoAですが、プラグインを書くとアプリケーションのコード全体的が見通しよくなります。 単純なプラグインの例を見ていきます。 app/plugin/hello.pm package plugin::hello; use strict; use warnings; use utf8; use base qw(NanoA::Plugin); sub init_plugin { my ($klass, $controller) = @_; NanoA::register_hook($controller, 'prerun', \&_prerun); NanoA::register_hook($controller, 'postrun', \&_postrun); no strict 'refs'; no warnings 'redefine'; *{$con

    NanoAプラグインの書き方 - とほほのN88-BASIC日記
  • バイナリファイルを解析する

    Perlといえばテキスト処理や正規表現が得意で、バイナリを扱うような話についてはあまり聞かない印象があります。Perlが持つ関数pack/unpack等でもバイナリ処理は可能ですが、今回はData::ParseBinaryを使ってバイナリファイルを気軽に解析してみましょう。 基 ファイルからストリームを作る 解析したいファイルをData::ParseBinaryで扱えるストリームに変換します。 use Data::ParseBinary; my $stream = CreateStreamReader(File => $file_handle); 解析したい構造を定義する Struct関数で解析したい構造を定義します。Struct以下には基データ型やコンテナ型、ビット/バイトパディング型、制御構文型等を使用できます。各型に指定したラベルが解析結果として得られるハッシュのキーとなります。

  • キャッシュしよう

    京都観光で散財しすぎて貯金がないmalaです。こんにちは。キャッシュの話を書きます。 色んなキャッシュがあります データベースから引く前にmemcachedから取得したり テンプレートエンジンのレンダリング結果をキャッシュしたり 各種ウェブサービスのリクエスト結果をキャッシュしたり その他諸々CPUったり時間のかかる処理をキャッシュしたり 簡単に思いつくのはこの程度ですが、スケーラブルなウェブサイトを構築するには常識的に考えてそんなのキャッシュしねーだろうというようなものをキャッシュする必要があります。 DateTimeをキャッシュしよう 同じ時刻に対するDateTimeオブジェクトをキャッシュします。 package MyDateTime; use strict; use base qw(DateTime); my %CACHE; sub now { my $class = shif

  • 技術的アドベントカレンダーの有用性について - tokuhirom's blog

    技術的アドベントカレンダーの有用性について 続かないかと思われていた JPerl Advent Calendar ですが、意外にも折り返し地点をまわっております。 http://perl-users.jp/articles/advent-calendar/2008/15.html 15日目は id:miyagawa さんです。perldoc の使い方の解説記事です。 来、アドベントカレンダーというのは、イエスの降誕祭を待ち望み、12月1日からクリスマスまでの間に1日一個ずつクリスマスツリーを模したカードの窓を一個ずつあけていくようなもののことです。 一方、エンジニアの世界では、技術系アドベントカレンダーというものがあります。これは、一日一個ずつ tips 的な記事を掲載していくというものです。Perl の世界では、2000年からはじまっています(発祥がどこかは寡聞にして知りませんが)。

    markup
    markup 2008/12/16
  • はてなブログ | 無料ブログを作成しよう

    fire tv stickを旅のお供に 自宅用に買ったFire TV Stickだが、旅行にも持っていくと地味に便利で、最近は旅の荷物にときどき入れてる。 最近のホテルは、だいたいWi-fiが整備されているし、テレビも設置されている。 そしてテレビはだいたいHDMI端子が付いている。 なので、部屋に入ってサクッと…

    はてなブログ | 無料ブログを作成しよう
    markup
    markup 2008/12/15
  • ヒアドキュメントの中でPerlの式を書く

    初代新幹線「0系」最後のラストランの日に、新幹線N700系のぞみでイーモバイルしながらこの記事を書いているid:TAKESAKOです。 Perlのヒアドキュメントを使うと複数行にわたる文字列を一気に代入したりするときに楽なので、使っている人も多いと思います。 my $foo = "bar"; my $tmp = time(); # ←関数の実行結果 print<<EOF; <div class="${foo}1"> <h1>TIME: $tmp</h1> </div> EOF しかし、ヒアドキュメントの途中でサブルーチンの実行結果も一緒に埋め込みたいときがでてくるときがあります。 @{[ Perlの式 ]} そのようなときは、@{[ リスト ]} というイディオムを使うと非常に便利です。 print<<EOF; <div class="${foo}1"> <h1>TIME: @{[ tim

    markup
    markup 2008/12/15
  • 私的 XS メモ - IT戦記

    参考にしたサイト集 perlxs - perldoc.perl.org perlxstut - perldoc.perl.org perlguts - perldoc.perl.org perlapi - perldoc.perl.org http://d.hatena.ne.jp/tokuhirom/20081209/1228829454 Perl XS メモ - typemap と MAGIC をからめて - daily dayflower http://pub.ne.jp/wakapon/?entry_id=1109553 http://pub.ne.jp/wakapon/?entry_id=1109664 準備 $ h2xs -A -n MyXSS Makefile.PL CC => 'g++', 型 SV スカラー AV 配列 HV ハッシュ CV コード GV グロブ RV リ

    私的 XS メモ - IT戦記
    markup
    markup 2008/12/14
  • Win32::GuiTest で Windows の GUI アプリをハックしよう

    的な書き方 use strict; use warnings; use utf8; # ↑ Perl ハッカーに DIS られなくなるおまじない # Win32::GuiTest を使うおまじない use Win32::GuiTest qw(:ALL); # 日語を使えるようにするおまじない UnicodeSemantics(1); # ここで Win32::GuiTest を使う マウスを動かす use strict; use warnings; use utf8; use Win32::GuiTest qw(:ALL); # 小数点もいけちゃう sleep 関数 use Time::HiRes qw(sleep); UnicodeSemantics(1); for (my $i = 0; $i < 500; $i++) { # 10 ms 待つ sleep(0.01); # マウ

    markup
    markup 2008/12/12
  • Perl XS メモ - typemap と MAGIC をからめて - daily dayflower

    id:tokuhirom さんが http://d.hatena.ne.jp/tokuhirom/20081209/1228829454 で下地をつくってくださったので(perl-users.jp むけまとめも期待してます),ちょっとアドバンスドな話題を。 例題 http://www.sra.co.jp/people/m-kasahr/eb/ http://www.sra.co.jp/people/m-kasahr/eb/ の Perl binding を開発するとしましょう。 http://www.sra.co.jp/people/m-kasahr/eb/ の使い方は,たとえば次のような感じです。 EB_Book *book_pointer; book_pointer = (EB_Book *) malloc(sizeof(EB_Book)); eb_initialize_book(bo

    Perl XS メモ - typemap と MAGIC をからめて - daily dayflower
    markup
    markup 2008/12/10
  • Higher-Order Perl

    by Mark Jason Dominus Order Higher-Order Perl online from Powell's Books Download full text here There are three versions available. You have your choice of structure or presentation, but not both. License reminder Higher-Order Perl is copyright ©2005 by Elsevier Inc. Unauthorized reproduction or distribution is absolutely forbidden. You may download the book for your personal use, but you may not

    markup
    markup 2008/12/10
  • tokuhirom blog

    Blog Search when-present<#else>when-missing. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: ${entry.path} [in template "__entry.ftlh" at line 3, column 25] - Reached through: #include "__entry.ftlh" [in template "entry.ftlh" at

    markup
    markup 2008/12/10
  • tokuhirom blog

    Blog Search when-present<#else>when-missing. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: ${entry.path} [in template "__entry.ftlh" at line 3, column 25] - Reached through: #include "__entry.ftlh" [in template "entry.ftlh" at