Perl

Plack::Middleware::InteractiveDebuggerがすごい

plackup -e 'enable "InteractiveDebugger"' -a app.psgi で使える。stacktraceを差し替えるモジュールなんだけど、stacktrace中で変数のdumpとかできる StackTrace (most recent call first) File "local/lib/perl5/Plack/Middleware/InteractiveDebugger.p…

平均レスポンスタイム50msをPerlで捌く中規模サービスの実装/運用

基本的にはWeb+DB Press Vol70に書いているものの補足 IOをとにかく減らす SSDを使う DNS, RDBへの問い合わせをなくす 極力/etc/hostsに書く Profile nginx * upstream response time -d:NYTProf SIG{ALERM} でスナップショット取る CloudForecast GrowthFor…

minicpanを工夫してみた

外出時にcpanモジュール入れるのにminicpanを使っていますが、いちいちminicpanを起動して、オプション指定して、使い終わったら落とすという流れがめんどくさかったので、一連の流れをコマンドにしてみた。(minicpan用のhttpdを常時起動しておいて、PERL_C…

perlbrewのproxy対応

perlbrew (http://search.cpan.org/~gugod/App-perlbrew/)を教えてもらって便利そうなので使ってみたけど、proxy対応していなかったので、環境変数から呼ぶようにしてみました。 これで環境変数にhttp_proxyがあればproxy使ってくれます。 もう少し真面目に…

WWW::Mechanize + Proxy 認証

某サイトからデータ引っ張ってくるためにWWW::MechanizeとWeb::Scraperでコーディングした。 Mech + Proxy認証でハマったところ。。。 clone my $mech_clone = $mech->clone 上記でcloneを作成すると、Proxyの設定はしてくれない。そのため、元々のオブジェ…

open関数とUTF8フラグとRedHatLinux9と

Perlのバージョンが5.8.0で、RedHatLinuxのデフォルトのlocaleがen_US.UTF-8になってるとopen関数で開いたファイルに自動的にUTF8フラグをつけようとするという罠があることがわかった。 ま、3引数のopen関数を使うか、Encodeモジュールをきちんと使うか、Lo…

EPIC 0.3 の導入

Perl使いの私は元々こちらが目当て。当然インストールしました。 利点は・・・ オンザフライな文法チェック (デフォルト:400ミリ秒ごとに文法チェックをします) デバッガが使える。 Perl -d ともおさらば。変数内も変数ビューで簡単にみれます(要:PadWalker.…

URIエスケープ

一部の人以外置いてきぼりシリーズPerlメモ(http://www.din.or.jp/~ohzaki/perl.htm#JP_Escape)を読んでいて、自分のミスを発見。今までURIエスケープには、URI::Escapeモジュールを使ってたけど、CGIを書くにはそれだけでは不十分だった。RFCで定められた…

PersistantPerl

〜CGIが遅くて困っている人へ〜 Perlスクリプトをメモリ上に常駐させ、Perlスクリプトの起動を実行を早くするモジュール。 コンパイル時間と、Perl起動時間を節約できる。 CGIの場合に有用である。 問題点 グループ分けってのがあって、パッケージにかかわっ…

Perl Debugger

Eclipse の Perl プラグインである EPIC には、Perl Debugger が、付属している。これを使えば Perlのデバッグが楽になる! と思いきや、自分で定義した変数の値を表示しない。環境変数とかは、トレースしてるのに。。。 EPIC の Perl Debugger の項を読むと…

CGI.pm

CGIのurlにquerystringを追加 $url_with_path_and_query = $query->url(-query=>1);