perl

AnyEventの練習

噂のsleepsort書いてみた。AnyEvent->timer の戻り値捨てると動かないんだなぁとか。 #!/usr/bin/env perl use strict; use warnings; use Data::Dumper; use AnyEvent; sub sleepsort { my (@args) = @_; my $cv = AnyEvent->condvar; my (@sorted, @timers…

Perlのsystem()に@_を渡せなくてハマった。と思ったら単純ミス。

背景 コマンドラインで動くPerlのプログラムをTDDで作ろうと思い、同じくコマンドラインプログラムであるApp::cpanminusのテストの書き方を真似して書いていた。 問題 でもユーティリティ関数で呼んでいるsystem()に引数が渡らない!なぜ!><単純化すると…

constant.pm は遅い?ベンチマーク取ってみた

base.pm のソース眺めてたら constant.pm は遅いからと自前でインライン関数(?)を定義していた。 # constant.pm is slow sub SUCCESS () { 1 } sub PUBLIC () { 2**0 } sub PRIVATE () { 2**1 } sub INHERITED () { 2**2 } sub PROTECTED () { 2**3 } で、…

MySQLで文字化け@さくらレンタルサーバー

MySQL + Perl + DBIx::Class Databaseの文字エンコーディングをUTF-8 各テーブルのエンコーディングもUTF-8 それでも化ける模様。 以下の設定が必要。 my $connect_info = ['dbi:mysql:dbname:hostname', 'username', 'password']; my $schema = MySchema->c…

"no moose"とtypoすると(mが小文字)、警告が大量に出る件

Moose使ってて、何か警告いっぱい出るようになったなぁと思ったらタイポして "no moose" なんてやってただけだった。エラーにはならないから見逃しがち。(いや警告もちゃんと直しましょう) 出てた警告: Subroutine throw_error redefined at /Users/naoto/pe…

Code Reading (Perl): Starman (PSGI Web Server)

Starman のコード読んでみたのでまとめ。 Starmanとは Plack/PSGIに対応したPerl製のWeb Server。 Perlと言えばこの人、miyagawa さん作。 Plack/PSGI に関してはこのへんとか。 バカでもわかるPlack/PSGI - JPerl Advent Calendar 2009 第1回 PSGI/Plack―フ…

とくに意味はない

package Lazy::Camel; use Moose; use feature qw(say); sub speak { say $_[1]; } __PACKAGE__->meta->make_immutable; no Moose; package main; Lazy::Camel->speak("Perl");

Perlのprintfは引数を好きな順番で扱うことが出来る

何これ便利1$ とか 2$ とかで文字列に続く引数の1番目、2番目を指定できる。perldoc -f sprintf より: printf '%2$d %1$d', 12, 34; # prints "34 12" 1個の引数を2回使うこともできる。CPAN本にあった例(P.155): use Text::Xslate qw(html_escape); # ... s…

今日覚えたPerlの一行野郎

インストールされてるCPANモジュールの一覧を出す % perl -MExtUtils::Installed -e 'print "$_\n" for ExtUtils::Installed->new->modules' > modules.txt cpanmに食わせてインストールできる % cpanm < modules.txt Unicode解読 % perl -MEncode=encode_ut…

ただのメモ: Web Application Framework とか PSGI 関連とかのモジュール

たくさんあって楽しすぎるからメモっといて後々調べていく。 Web Application Framework とか Catalyst Catalyst | Perl MVC web application framework Mojolicious Mojolicious - Perl real-time web framework Mason Mason (Perl) - Wikipedia Jifty Jift…

ただのメモ: Perl5開発環境構築

% curl -LO http://xrl.us/perlbrew % perl perlbrew install % rm perlbrew % ~/perl5/perlbrew/bin/perlbrew init (add this in .zshrc: 'source ~/perl5/perlbrew/etc/bashrc') % perlbrew install perl-5.12.2 % perlbrew switch perl-5.12.2 (installed…