Perl-5.12.1 がリリースされたということで早速インストールされたかたも多いと思いますが、新しい Perl にモジュールを全部入れ直すのは面倒ですよね。ExtUtils::Installed を使うと楽ができます。今まで使ってる perl でインストールされているモジュールの一... 続きを読む
Sub::Retry はクールでクレバーなモジュールなのですが、retry の条件が exception のみでちょっと悲しかったので、retry 条件をカスタマイズ出来るようにしてみました。すでに取り込まれて、0.03 としてリリースされています。 Sub-Retry-0.03 - FrePAN ユース... 続きを読む
2010 Perl Advent Calendar などでも説明していた Scope::Container でDBの接続管理を行うモジュールを書いた。 CPAN: http://search.cpan.org/dist/Scope-Container-DBI/ github: https://github.com/kazeburo/Scope-Container-DBI 機能的には、Scope::Contain... 続きを読む
Perl でつくった web サイトを L10N する方法について簡単に説明します。今回は、日本語のサイトを英語でも表示できるようにするケースをあつかいますよ。今回は L10N の対象は Amon2 をつかったサイトとします。基本的な翻訳機能は Locale::Maketext::Lexicon ... 続きを読む
perl use Time::Piece; use Time::Seconds; use POSIX qw(strftime); sub print_tp { my $tp = shift; printf("date : %s\ntzoffset: %d\nepoch : %d\nstrftime: %s\n\n", $tp->strftime('%Y-%m-%d %T'), $tp->tzoffset, $tp->epoch, strftime('%Y-%m-%d %T', l... 続きを読む
互換性を大事にしているからバージョンアップしてもそのままうごくっていうのはすごくいいですね。バージョンアップするための作業に自分の時間をとられたくないですね。そういった意味では Python はのりかえの選択肢になりますね。正規表現リテラルがあるから... 続きを読む
Perl, DBIさて、今日は selectcol_arrayref です。昨日、会社のグルメな同僚に教えて貰いました。ちょうど Yet Another Hackadelic にて selectall_arrayref + Slice, selectall_hashref などの使い方を書きましたが、こちらもかなり便利。 CREATE TABLE `appli... 続きを読む
2010年12月31日(金) 13:39 最近の Plack::Middleware 事情 もりもり。 mount '/' => builder { enable 'Head'; enable 'ContentLength'; enable 'AddDefaultCharset', charset => 'UTF-8'; enable 'LogDispatch', logger => EasyApp::Config->get_logger($app->... 続きを読む
いつも忘れちゃうのでメモ。 UNIVERSAL::isaは、UNIVERSAL::isa()を呼んでも自分のクラス(階層)内にisa()が定義されてればそっちを呼ぶようにするためのモジュール。 以下のようにmainでUNIVERSAL::isaをuseしないと、最後の2つのUNIVERSAL::isa()は1を返します... 続きを読む
mod_rewriteのrewrite ruleが、実際に意図した通りに動くかどうかを検証するのはけっこうやっかいなわけですが、それを簡単にテストすることができるTest::Apache::RewriteRulesというモジュールをCPANに上げました。http://search.cpan.org/dist/Test-Apache-R... 続きを読む
On my development server, I have two Apaches, both with this setup: Apache/1.3.41 (Unix) mod_perl/1.30 mod_ssl/2.8.31 OpenSSL/0.9.8g Apache A is running a HTTPS virtualhost on port 443. Apache B is trying to connect to it using NET::SSLeay. T... 続きを読む
探したのだけど作っている人がいなかったので、いわゆるutf-8-macと呼ばれるエンコーディングを追加するEncode::Encodingをつくりました。https://github.com/tomi-ru/Encode-UTF8Mac use Encode; use Encode::UTF8Mac; print Encode::encode('utf-8-mac', '蘄... 続きを読む
malaさんの「HTMLのscriptタグ内に出力されるJavaScriptのエスケープ処理に起因するXSSがとても多い件について」にちょろっとでているgistのコードをモジュールにしました。 JavaScript::Value::Escape - https://github.com/kazeburo/JavaScript-Value-Escape ... 続きを読む
にしても、こちらのサイトでも言われていますが、なぜ半角カナ専用のUnicodeブロックがないのかと小一時間(ryhttp://blog.livedoor.jp/sasata299/archives/51194035.htmlhttp://d.hatena.ne.jp/pasela/20081003/ll_unicodeということで、 sub InHankakuKatak... 続きを読む
仕事でアプリのボトルネックを探しているという話をしたら、hideokiさんが 「YAPC::Asia 2010 で cho45 が紹介してた Devel::KYTProf がいいよー」 って言ってたので、使ってみたらだいぶよかったのでご紹介。 Devel::KYTProfの作者はid:onis... 続きを読む
仕事でアプリのボトルネックを探しているという話をしたら、hideokiさんが 「YAPC::Asia 2010 で cho45 が紹介してた Devel::KYTProf がいいよー」 って言ってたので、使ってみたらだいぶよかったのでご紹介。 Devel::KYTProfの作者はid:onis... 続きを読む
Web::Dispatcher::SimpleとDBIx::Simple::DataSectionとText::XslateでNoPasteを作ってみました (#1) テンプレートとSQLが__DATA__セクションになる本体ロジックはとてもシンプルで、150行程度でかけています。SQLに名前がついているので、ロジックをそのまま書... 続きを読む
http://frepan.64p.org/~tokuhirom/HTML-Pictogram-MobileJp-0.01/ドコモ絵文字をテンプレにかいたら3キャリ分表示できるようにするためのライブラリ。とりあえず [emoji:1](ただし1は絵文字番号)と、Unicode による &#xXXXX; の2形式に対応している。3キャリで... 続きを読む
Yuji Shimada / App-pmuninstall-0.05 - search.cpan.org (建設予定地) あるお方から 「pm-uninstall -l extlib Foo したい!!」って言われたので、書きました。 $ mkdir extlib $ cpanm -l extlib App::cpan-outdated $ pm-uninstall -l extlib App::cpan-out... 続きを読む
PerlまだText::XslateでもText::MicroTemplateでもなくTemplate::Toolkitを主に使っているわけですが。。 やりたいことテンプレート中に出てくるURLを自動でアンカーテキストにしたい。 http://example.com/ が自動的に http://example.com/ になってほしい。こ... 続きを読む
先のエントリ「(Twitter の XSS 脆弱性に関連して) 構造化テキストの正しいエスケープ手法について」の続き。 弾さんが「404 Blog Not Found:DHTML - 構造化テキストは構造化するのがやっぱ正しい」で示されているような DOM ベースの操作を行えば、原理的に XS... 続きを読む
chdirのときもエラー処理は必須ですな〜自分で使うスクリプトだからええ加減な書き方してた〜反省 #ubuntu #perlhttp://twitter.com/mukumaru/status/20694618336perl5.10.1 以後では autodie.pm が標準添付されているので、それを利用するとよい。 % perl -E '... 続きを読む
一般的な OSX 環境および Linux 環境における、モダンな Perl 開発環境の構築方法についてまとめてみたよ。 下準備コンパイラなどをまずインストール。OSX なら Xcode、debian なら apt-get build-dep perl する。 perlbrew のインストールperlbrew をつかうこ... 続きを読む
今年2度目となるYokohama.pm #6を開催致します。 今回の開催は、カジュアルで(?)初心者向けの(?)勉強会を開催するPerl Casualとの夢の共同開催となります。 詳細は以下。 日時 - 2010年7月23日(金) 18:00開場 18:30開始 21:00終了 会場 - ネイバージャパン株... 続きを読む
開発版の Perl 5.13.2 がリリースされたが、5.13.2 の目玉はなんといっても package NAMESPACE BLOCK 構文だろう。 use 5.13.2; use warnings; package Point { use Moose; has 'x' => (is => 'rw', isa => 'Int'); has 'y' => (is => 'rw', isa => 'Int'); __P... 続きを読む
http://frepan.64p.org/~tokuhirom/Proc-Guard-0.01/lib/Proc/Guard.pmテストなどで memcached やら ttserver やら gearmand やらを起動するにあたって、サーバープロセスを起動するとかいった場合に、サーバーの種類ごとにライブラリを書くのも馬鹿馬鹿しいの... 続きを読む
一部の方はすでにご存じの通り、先日 "Perl"および"パール"の商標登録がプログラミング言語Perlの開発およびコミュニティと全く関係のない法人(テラ・インターナショナル)により出願され、受理されてしまっていることが発覚いたしました。 Japan Perl Associa... 続きを読む
Test::mysqldとかでテスト走らせる時に際行ったいろんな事。 Test::mysqldを使うとクールにMySQLを起動させられるので、それを使おうとしたんだ。でもおいらのローカルにあるmysqlをMacPortsのmysqlで、ファイルレイアウトがメタメタなんだ。だからまずこんな感... 続きを読む
perl | 00:02 | 以前 メソッドの一覧を取得する - だるろぐ とかやったんだけど、rubyの p obj.methods みたいにしたい。ので package Foo; use strict; use warnings; sub new { bless {}, shift } sub hoge {} sub foo {} my $var_my = 1; our $var_our = 3; ... 続きを読む
最近WindowsからLinuxへログインして作業していることが多いんですけれども、なんかつぶやきたくなったときにこんなの。Twitterにポスト。Net::Twitterモジュールを使います。 と書いたのが2年前。 実用! PerlでコマンドラインからTwitter投稿 - perl-mongers.... 続きを読む
2010-03-05に行われたYokohama.pm #5でData::ObjectDriverについて発表したプレゼンを公開します。ちょっと加筆したり、あとなんとなく英語にしてみました。 個人的にはやれることは少ないけど、その分ソースが少なくて全部を把握できるしキャッシュやパーティ... 続きを読む
perlbrew は本来、あたらしい perl をつかうことが主眼だが、古い perl でテストする目的にも使用することができる。 % perlbrew install perl-5.8.9 -D=usethreads -as perl-5.8.9-usethreads のようにすると、オプションつけていろんな perl を生成することも... 続きを読む
はじめに 先のエントリ公開後間もなく,miyagawaさんより次のようなご指摘をいただきました. > ただし,冒頭のフォームのように,1つのフィールドに複数の要素が存在する場合,リストリファレンスが得られることに注意です Plack 0.99 以降ではそのようになり... 続きを読む
Perlモジュールを取得して解凍しビルドしてインストールするコマンド。 cpanm の紹介 cpanm は、Perlモジュールを取得して解凍しビルドしてインストールするコマンドです。 CPANモジュールのインストールには、長らく cpan コマンド(CPAN.pm)が利用されてきまし... 続きを読む
本を書いていたり、Perl Casualとかイベントやってる手前、 世の中の主にPerl初心者な人な人達が「Perlについて知りたいこと」を考えています。 とりあえずニーズから物事を作っていくってやつですね。 ちょっと抽象的な段階ですが僕なりに以下をまとめてみまし... 続きを読む
タイトルの問題ですが、自分はよく以下のような関数でやります。 HTML::TreeBuilderのas_HTML()がうまいことやってくれます。 (実際にはHTML::Element::as_HTML()ですが) sub _complement_html { my $broken_html = shift; my $html = do { no strict 'refs'; n... 続きを読む
python の virtualenv っぽい感じで local::lib つかってサンドボックスを構築するためのスクリプトをかいてみたよ、と。http://github.com/tokuhirom/plenv % plenv JiftyEnv writing /home/tokuhirom/dev/plenv/JiftyEnv/lib/perl5/local/lib.pm writing /hom... 続きを読む
DBIのちょっとしたTIPSです。DBIには connect する時に DBI->connect('dbi:mysql:database=hoge', 'root', 'whatever', { ... }); とオプションを渡すことができます。(たとえば RaiseError) 。このオプションのひとつに HandleError というものがあってデバッ... 続きを読む
金曜日に行われたYokohama.pmでKamuiについて発表させていただきました。http://yokohama.pm.org/2010/02/yokohamapm-5.htmlhttp://yokohama.pm.org/2010/03/yokohamapm-5-1.html持ち時間10分じゃボリューム的につらいすね。 発表資料はhttp://nekokak.org/pr... 続きを読む
レガシーなアプリをメンテするのにレガシーな Perl モジュールが必要になることがあり、そのために古いアプリ用には専用の local::lib ディレクトリを切っているわけですが、普段から日常的に local::lib を使用しているため shell が上がったタイミングではデ... 続きを読む
親父と一緒にやってるBPMに変わる新しいアプリケーション「Kailas」の開発で、 必要になったので Data::Validator::Simple っていうちっちゃいモジュールを作り出しました。 アプリの要求として、「条件分岐」させなくてはいけないところがあって、 その判定に... 続きを読む
DBIx::ProfileManager で SQL Profiling by Toru Yamaguchi 2010/03/11 19:04 on MySQLPerl 風邪を引きっぱなしで全然治らない山口です。恐らくネット上では zigorou と言うハンドルでご存知の方もいらっしゃるかもしれません。 まずは技術系のネタの第1弾です... 続きを読む
目的 http://jp2.php.net/manual/en/funcref.php PHP: Function Reference - Manual の用な体裁でPerlのドキュメントを整備したいと思います。 なんでもPHP -> Perlに移行組とかには需要があるそうです(by junichiroさん)。 PHPからPerlにくる人にモダンなPerl... 続きを読む
はじめまして。gardejoこと守屋と申します。 この文書はPerlの拡張モジュールMooseの文法や作法などを簡易的にまとめたものです。Perl5の基本文法に習熟していて、かつ、言語を問わず一般的なオブジェクト指向についての知識がある人を想定読者としています。 ... 続きを読む
Perl, DBIさてと、モバゲーオープンプラットフォームが先日やっと始まりました^^みなさん是非遊んで下さいです。d:id:ZIGOROu:20091125:1259163476 のさらに続編です。 ShowErrorStatement でエラー時に発行されていたクエリを表示する #!/usr/bin/perl use C... 続きを読む
Snow Leopard には二つの Perl がインストールされている /usr/bin/perl5.10.0/usr/bin/perl5.8.9 デフォルトの /usr/bin/perl は 5.10.0 のほう。それぞれユニバーサルバイナリになっていて、 $ file /usr/bin/perl5.10.0 /usr/bin/perl5.10.0: Mach-O univers... 続きを読む
明けましておめでとうございます! mumumu です。 僕は普段 Perl を使ってないんだけど、たまに CPAN module をインストールする機会があります。その際に毎回うざいなって思うのが、依存関係にあるモジュールをインストールしますか? って以下のように聞かれ... 続きを読む
perlといえばテキスト処理や正規表現が得意で、バイナリを扱うような話についてはあまり聞かない印象があります。perlが持つ関数pack/unpack等でもバイナリ処理は可能ですが、今回はData::ParseBinaryを使ってバイナリファイルを気軽に解析してみましょう。 基... 続きを読む
http://d.hatena.ne.jp/gfx/20091213/1260676300#cをみてておもったことのメモ。いくつかのビルトイン関数は CORE:: をつかっても上書きできない。うわがきできない関数については、prototype 関数でしらべることができる。下記参照。 prototype FUNCTION Retur... 続きを読む
via www.flickr.com Some people still seems do not "get" Plack/PSGI, so here's the overview. The picture might scare you like "holy cow that's a lot of layers!" but actually, No, PSGI interface is a Perl code reference that's executed inline, ... 続きを読む