タグ

perlに関するstealthinuのブックマーク (145)

  • perl - 木を痛めない枝チェック : 404 Blog Not Found

    2007年10月12日00:00 カテゴリLightweight Languages perl - 木を痛めない枝チェック 確かにこれは悩ましい。 [を] Perl の defined と exists それはそうと、やっかいなのが、ハッシュでツリーを扱うとき。 一度でも $a->{"a"}->{"b"} を見に行くと、 $a->{"a"} が存在するようになっちゃうんですよね。 確認するためにアクセスしただけなのに、 途中ノードができちゃうなんてちょっとなあ…。 念のために解説すると、こういうことです。 use strict; use warnings; use Data::Dumper; my $a = {}; # 空っぽのはずが print Dumper($a); print exists $a->{b}{c}; # { b => {} } となっちゃう print Dumper($

    perl - 木を痛めない枝チェック : 404 Blog Not Found
    stealthinu
    stealthinu 2007/10/15
    existでハッシュのハッシュを存在確認するとき、余計な空ハッシュを作らないための関数。
  • Tenjin - the fastest template engine in the world - kuwata-lab.com

    Tenjin News (2012-02-16) pyTenjin 1.1.0 released (2011-11-27) rbTenjin 0.7.1 released (2011-11-24) rbTenjin 0.7.0 released (2011-04-29) pyTenjin 1.0.2 released (2011-02-22) pyTenjin 1.0.1 released (2011-02-21) pyTenjin 1.0.0 released Introduction Tenjin is a very fast and full-featured template engine available in several script languages. How fast Tenjin is? The following is a result of benchmark

    stealthinu
    stealthinu 2007/08/16
    マルチ言語対応のテンプレートエンジンということでいいかと思ったんだが、(PHPみたいに)テンプレート内に言語埋め込みみたいな感じになるみたいだから、あんまりかなあ?サンプルがわかりにくいだけ?
  • buribullet: FedoraのPerlが遅い件

    perl-5.8.8-22.fc8 にて解消 2007-07-25 15:20 EST rnorwood 氏が改訂版をアナウンスしました This should be fixed in the latest perl in F8/rawhide: perl-5.8.8-22.fc8 or later だそうです。 過去の要約 ¤http://blog.yappo.jp/yappo/archives/000515.html で挙がっていた、Fedora の Perl で overload されたオブジェクトの生成が遅い件ですが、事態はもっと深刻でした。 overload されたオブジェクトの生成の際に、 毎回スカラメモリのフルスキャン が 発生する模様です。このベンチマークのように n個の overload されたオブジェクトを メモリに格納する場合、 O(n^2) の挙動に陥ります。 ¤修

    stealthinu
    stealthinu 2007/06/25
    というか、他の人のソーシャルブックマークから偶然開いたらhkobaさんだったという。やっぱさすがだわ…
  • PHPのpreg_match_all()関数はとっても便利なんですが、それをPerlに移植したいと思っています。…

    PHPのpreg_match_all()関数はとっても便利なんですが、それをPerlに移植したいと思っています。正規表現にマッチする文字列を2次元の配列に格納して、しかもその個数を返してくれるようなPerlのサブルーチン、どっかにありませんか?

    stealthinu
    stealthinu 2007/06/12
    preg_match_all互換っぽい関数。これjkondoが答えてる!
  • Algorithm::Diff - 2つのファイル/リスト間での'気の利いた'差異を求めます。 - perldoc.jp

    名前¶ Algorithm::Diff - 2つのファイル/リスト間での'気の利いた'差異を求めます。 概要¶ use Algorithm::Diff qw(diff sdiff LCS traverse_sequences traverse_balanced); @lcs = LCS( \@seq1, \@seq2 ); @lcs = LCS( \@seq1, \@seq2, $key_generation_function ); $lcsref = LCS( \@seq1, \@seq2 ); $lcsref = LCS( \@seq1, \@seq2, $key_generation_function ); @diffs = diff( \@seq1, \@seq2 ); @diffs = diff( \@seq1, \@seq2, $key_generation_function

    stealthinu
    stealthinu 2007/05/28
    diffモジュール
  • 正規表現の否定 #2 - odz buffer

    ref:Unknown::Programming - 文字列の先頭がある単語で始まらない正規表現って ref:odz buffer - 正規表現の否定 ちょいと考えてみたんだけど、任意の正規表現にマッチしない正規表現ってのはこうすれば作れるんではないだろうか。 sub negative_regexp { my ($re) = @_; return qr/\A(?!$re)(?:.(?!$re))*\Z/s; } 適当にモジュール化して適当にテストを書いてみたけどどうだろう。まぁ、テストが全然足りないんだけども。 とりあえず、dankogai さんあたりがツッコミを入れてくれると期待。いや、実は全然既知のネタというオチがありそうだけども。 package Regexp::Negative; use warnings; use strict; use Carp; use version; ou

    正規表現の否定 #2 - odz buffer
  • perlstyle - Perl スタイルガイド - perldoc.jp

    名前¶ perlstyle - Perl スタイルガイド 説明¶ プログラマは、もちろん人それぞれ、フォーマットには好みがあるでしょう。しかし、いくつかのガイドラインに従うことによって、プログラムの可読性や保守性をあげることができます。 もっとも重要なことは、つねにプログラムを-wフラグをつけて走らせることです。必要であれば、no warnings プラグマや $^W 変数を使用してコードの一部だけで警告を明示的にオフにします。また、つねに use strict を使用すべきです。もし、use strict を使用しないなら、その理由を十分に理解しておくべきです。use sigtrap や use diagnostics プラグマも便利でしょう。 コードレイアウトの美観に関しては、Larry が強く気にかけているのはたった一つ、複数行のブロックの閉じブラケット、その構造を開始したキーワード

    stealthinu
    stealthinu 2007/05/09
    &&よりandを推奨してる
  • Googleにもアクセス拒否され、スパム送信源と化した「libwww-perl」とは?

    スパム対策をして気がついたのですが、どうやらスパムトラックバックを送信してくるリモートホストIPアドレスなど)はバラバラであっても、ユーザーエージェント、いわゆるブラウザの名称部分に「libwww-perl/5.805」というように「libwww-perl」と入っているものが多く、結果として、Googleなどは検索結果ページに対してこのユーザーエージェント名の一部「libwww」が含まれているとアクセス拒否しているようです。 ネット上で調べてみると、かなり多くの人が「libwww-perlはスパム送信ボットだ」と思っているらしいので、その正体を探ってみます。実際にはスパム送信のためのものではないです。どんなものでも悪用されると悲劇が起きるという例になってしまっています。 詳細は以下の通り。 まず最初に、「libwww-perl」がスパム発生器と化している状況は検索すれば国内や海外含めて山

    Googleにもアクセス拒否され、スパム送信源と化した「libwww-perl」とは?
    stealthinu
    stealthinu 2007/04/25
    googleでもlibwww-perlがUAの接続を拒否するようにしたらしい。うちのWikiでもこないだから制限入れた。でもいたちごっこなんだけどね。まあとりあえず大まかに落とすことは出来る。
  • PerlとGDで画像生成

    静的な画像表示 まず、CGI で静的な画像ファイルを出力する方法を説明しましょう (画像は 東京発フリー写真素材集 から拝借しました)。 image-1.cgi (実行結果) 1: #!/usr/local/bin/perl 2: 3: # $Id: image-1.cgi,v 1.1 2004/06/25 17:30:47 zxr400 Exp $ 4: 5: my $imgfile = '../../img/tokyo-tower.jpg'; 6: my $imgsize = (stat($imgfile))[7]; 7: 8: print "Content-type: image/jpeg\n"; 9: print "Content-Length: $imgsize\n"; 10: print "\n"; 11: 12: binmode(STDOUT); 13: 14: open(I

    stealthinu
    stealthinu 2007/04/09
    GDサンプル
  • Efficient data transfer through zero copy

    IBM Developer is your one-stop location for getting hands-on training and learning in-demand skills on relevant technologies such as generative AI, data science, AI, and open source.

    Efficient data transfer through zero copy
    stealthinu
    stealthinu 2007/04/09
    GDサンプル
  • 404 Blog Not Found:勝手に添削 - Ajaxでデバッグしよう - @IT

    2007年03月07日11:00 カテゴリLightweight Languages 勝手に添削 - Ajaxでデバッグしよう - @IT 記事そのものはまあいいのだけど、CGIの部分があまりにひどいので。 Ajaxでデバッグしよう - @IT 私の仕事の現場ではJavaを開発言語として使用することが多いので、JSPやServletとして実装していますが、今回はレンタルサーバでも利用しやすいようにPerlで作成しました。以下のソースを参考にしてください。 Before まあご覧下さい。前世紀末においてすら[これはひどい]レベルです。著者はJava屋さんとのことなのでその点を甘く見ても、一体何を参考にして書いたのか是非お聞かせください。 local %params; # エージェントはGETメソッドだけを使用するのでPOSTは考慮しない # リモートログエージェントから送られてたログ情報を環

    404 Blog Not Found:勝手に添削 - Ajaxでデバッグしよう - @IT
    stealthinu
    stealthinu 2007/03/08
    せめてstrictとCGIモジュールくらい使おうや、という話。
  • Six Apart - Tech Talk Blog: Perl モジュールの作り方

    こんにちは。TypePad Engineer の重田です。 今年も YAPC::Asia Tokyo の季節がやってきました。今回も豪華メンバが参加するのでとても楽しみですね。 さて今回はYAPCにちなんでPerlモジュールの作成方法をご紹介します。 準備 Perl プログラマのバイブルである Perl Best Practices の Chapter17: Modules の Refactoring の冒頭で Damian Conway が言っています。 Place original code inline. Place duplicated code in a subroutine. Place duplicated subroutines in a module. さあ皆さんもそろそろ車輪の再発明に別れを告げてモジュール作りをはじめてみませんか? h2xs 少し前の書籍などでは h2

    stealthinu
    stealthinu 2007/03/01
    Perlでモジュールのスケルトン作ってくれるモジュール
  • WWW::Mechanize 事件について思う…「声の大きさ」が欲しかった - にぽたん研修所 兼 にぽたん休憩所

    WWW::Mechanize の 1.17_01 がリリースされていたので、見てみたら、1.16 で (というか 1.06 以降で) リダイレクトされた後に uri() を呼ぶと、リダイレクトされる元の URL が返るというバグに対して、送った patch が取り込まれてない。 完全無視されている。 てか、基的にはテストだけ直された模様。 どういうバグなのか、簡単に言えば、 http://www.example.com/ → http://a.example.com/ → http://b.example.com/ → http://c.example.com/ とたらいまわしにリダイレクトされるサイトがあったとして、上記の場合 use strict; use WWW::Mechanize; my $mech = WWW::Mechanize->new; $mech->get('http

    WWW::Mechanize 事件について思う…「声の大きさ」が欲しかった - にぽたん研修所 兼 にぽたん休憩所
    stealthinu
    stealthinu 2007/02/14
    せっかくpatch書いても取り込んでもらえないことってあるが、そういうのってやっぱり声の大きさというか、政治力というか、あと自分の場合は英語力がたらんのだろうなあ。
  • Net::Server::Multiplex

  • Net::Server - Perlによる拡張可能な汎用サーバエンジン - perldoc.jp

    Net::Server - Extensible, general Perl server engine Net::Server - Perlによる拡張可能な汎用サーバエンジン 概要¶ #!/usr/bin/perl -w -T package MyPackage; use Net::Server; @ISA = qw(Net::Server); sub process_request { #...コード... } MyPackage->run(port => 160); exit; 取得方法¶ * Single Server Mode * Inetd Server Mode * Preforking Simple Mode (PreForkSimple) * Preforking Managed Mode (PreFork) * Forking Mode * Multiplexing M

  • 小飼弾のアルファギークに逢いたい:#0 Perlの父 Larry Wall|gihyo.jp

    というわけで、Larry Wallの来日とともに、いきなり連載スタートです。3月29~30日に開催されたYAPC::Asia::2006に合わせて5年ぶりに来日したLarryは、実は我が家の賓客でもありました。またとない機会なのでインタビューしてみた次第。なお、Larryが日語で話した部分は《~》でくくっています。 撮影:武田康宏 弾(筆者⁠)⁠:日語はどれだけ話せるのですか? ラ(Larry⁠)⁠:《簡単に会話を遅くします。でもペラペラじゃない。5年かけて少しずつ勉強しました。でも、練習することがあまりできません。だけで簡単に…》 弾:ひょっとしてまだ1977年版Honda Accordに乗っているんですか? ラ:はい。もう29歳です。廃車にすると、環境条例でカリフォルニア州が500ドルくれるのですが、まだ乗ってます。 弾:最近お気に入りのアニメは? ラ:《あずまんが大王! ちよち

    小飼弾のアルファギークに逢いたい:#0 Perlの父 Larry Wall|gihyo.jp
    stealthinu
    stealthinu 2007/01/16
    ラリーウォールはいまだにちゃんとオタクなんだな。安心した。
  • はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知

    はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28

    はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知
    stealthinu
    stealthinu 2006/12/22
    正規表現でマッチする範囲を指定できる。知らなかった。
  • いやなブログ - 文字列操作の比較表: Ruby, Python, JavaScript, P...

    文字列操作の比較表: Ruby, Python, JavaScript, Perl, C++ Ruby, Python, JavaScript, Perl, C++ の文字列操作の比較表を作りました。配列操作の比較表の続編です。間違いなどがあったらご指摘いただけると助かります。 Ruby (String) Python (str) JavaScript (String) Perl C++ (std::string)

    stealthinu
    stealthinu 2006/10/24
    あらこりゃ便利
  • http://fleur.hio.jp/~hio/perldoc/mix/lib/YAML.html

    stealthinu
    stealthinu 2006/09/29
    可読性の高いXMLの置き換え
  • qpsmtpd - Develooper LLC

    qpsmtpd is a flexible smtpd daemon written in Perl. Apart from the core SMTP features, all functionality is implemented in small "extension plugins" using the easy to use object oriented plugin API. qpsmtpd was originally written as a drop-in qmail-smtpd replacement, but now it also includes smtp forward, postfix, exim and maildir "backends". Articles and Documentation The qpsmtpd wiki Using Qpsmt

    stealthinu
    stealthinu 2006/09/25
    プラグインで柔軟に拡張可能なSMTPD。Postfixのバックエンドとして利用可能。