Perl

Re: CPANモジュールのアンインストール

CPANモジュールのアンインストール - ヒルズで働く@robarioの技ログ 5.10にするついでに、CPANPLUSに乗り換えてますよ。 だいたいalias cpan-uninstallも間違っててたまにうまくいかないしね。誰も突っ込んでくれないけど。 記事書いた頃から気付いてたけど…

FFmpegをインストールしてみた

Ubuntu 7.04にFFmpeg-6036をインストールしてみた。 ffmpeg関係のものが(/usr/local以下などに)入っていたら、アンインストールしておいた方が無難 ffmpegが必要としているものを最小限インストール $ sudo apt-get install quilt libogg-dev libvorbis-de…

mod_perl2.0.4のビルド中、modperl_xs_typedefs.hでエラーが出る場合の対処法

src/modules/perl/modperl_apache_compat.h typedef unsigned long apr_os_thread_t; typedef void * apr_thread_mutex_t; +typedef void * apr_thread_rwlock_t; #endif http://www.nabble.com/Re%3A--mp2--compilation-errors-with-mod_perl-2.0.4-on-Open…

AutoInstallに困りんぐ

Module::AutoInstallにCPANじゃなくてCPANPLUSを使わせるには、PERL5_CPANPLUS_IS_RUNNINGという環境変数を真に設定しておくといいよ。でもうまく自動インストールされない。なんでだ。そりゃそうだ。Module::Installがちゃんと入ってなかったorz PERL5_CPAN…

久しぶりにCatalyst小ネタでも書いてみるか。

リクエストの取り扱いは現在、「静的ファイルがあったらそれを返し、無かったらバックエンドのCatalystに飛ばす」って感じで落ち着いています。 Apacheならmod_rewrite、lighttpdならserver.error-handler-404とかで。 CatalystTestServerではC::P::Static::…

Lighttpd + mod_proxy で Catalystに飛ばす時

何も考えずに $HTTP["host"] == "backend.example.com" { proxy.server = ( "" => (("host" => "127.0.0.1", "port" => 3000))) } などとしてしまうと、$c->uri_forが http://backend.example.com:3000/ になってしまって都合が悪い。、大抵バックエンドには…

Catalyst::Devel-1.05が出てた。

Catalyst::Devel-1.05が出てた。catalyst.plで作られるRoot.pmの中身が変わっていた。 PrivateアクションがPathアクションに変更 またはまった。default アクションでの args の扱い - ヒルズで働く@robarioの技ログ defaultアクションの属性はPathが良いで…

Re: Perlにデフォルトでインストールされているモジュールを表示する

隣のO澤くんが「Perlにデフォルトで入ってるモジュールが何かあるのかわかんないんですよねぇ」とか言ってるから、ワンライナー: # もしModule::CoreListがインストールされてないなら cpan install Module::CoreList perl -MModule::CoreList -e 'print "$…

Re: めっきり春だし今日からPerlを始めました

めっきり春だし今日からPerlを始めました - あきらめたらそこでテキオモですよ #!/usr/bin/perl を #!/usr/bin/env perl に変えた。perlが/usr/local/bin/等にあってもパスが通ってれば動きます。 use warningsを追加(#!/usr/bin/env perl -wでもいいけど)…

lighttpdでファイルが存在しない場合にFastCGI-Catalystへ飛ばす設定とプラグイン

「そんなことしなくてもいいよ」的な猛烈な勘違いをしてたらすみませんがこっそり教えてください。Apacheの RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^/(.*)$ http://127.0.0.1:3000/$1 [L,QSA]みたいなイメージで、 ファイルが存…

Re: JSON::XS を実戦投入した

unknownplace.org - 2008/02/05 - JSON::XS を実戦投入したCatalyst::View::JSON-0.23(2008/02/22)からencode_jsonが使えるようになってるっぽ。 package MyApp::View::JSON; use strict; use base 'Catalyst::View::JSON'; use JSON::XS (); my $encoder = …

Shipwrightちょっとだけ使ってみたよ

参考:Shipwright - dann@catalyst - Catalystグループ Shipwright-1.01使ってみたよ。CPANモジュール群をSubversionリポジトリで管理できるよ。 どっかの誰かが『CPANモジュール群のバージョンを各マシンで合わせるためにrpmに変換して云々』ってのをやって…

Catalyst::View::TT::ForceUTF8使ってるけどFilterで文字化け

(急いで書いてるので間違ってたらごめん。)Catalyst::View::TT::ForceUTF8を使って、テンプレート内でTemplate::Plugin::Clickableとか使うと Malformed UTF-8 character (fatal)とか言って落ちる。 #--- MyApp/View/TT.pm ---# package MyApp::View::TT; …

特殊変数 $" と $, の違い

ちょっと「ん?」となったので。 今日Perl Tip. 配列をプリントアウトしたいぜ! - Lazy Programmer :-p 「それはプリントアウトじゃなくて変数展開だぜ」と細かい事を言ってみる。 my @food = qw/sashimi yakiniku purin/; local $" = ', '; # とすると pri…

Catalyst::View::TT::ForceUTF8に設定を握りつぶされる

あー。PadWalkerってそういうモジュールだったのか。 http://nyarla.net/blog/perl-tips4 これ使ったら@Catalyst::View::TT::ForceUTF8::PROVIDER_CONFIG_KEYSを書き換えられるじゃん。 色々終わったらPadWalker使って書き直そう。 package MyApp::View::TT;…

Catalyst::View::TT::ForceUTF8でTIMER使ったら化けた

手短に package MyApp::View::TT; use base 'Catalyst::View::TT::ForceUTF8'; というTTなViewで上手く動いているとき、TIMERをセットする View::TT: TIMER: 1 と、文字化けする。 タイマーの出力()にutf8フラグが立っていないからなんだろうけど。 (*‘ω‘ …

XML::Feedが外部から取得したデータをキャッシュしてくれないのでさせてみる

XML::Feed#parseにURIオブジェクトを渡すとURI::Fetchを使ってくれるんだけど、こいつがキャッシュしてくれない。オプションも渡せないので、無理くりやってる。 # 元のメソッドを取得 my $fetch = URI::Fetch->can('fetch'); # キャッシュオブジェクトを作…

Re: 文字列"0123456789"を"9876543210"に変換する方法

[Javascript] 文字列"0123456789"を"9876543210"に変換する方法 たまには呪文をとなえてみるか:仕事版/ウェブリブログ 逆にするならreverseの方が自然かなあ?(Javascriptの正規表現の話という前提を壊してしまいますが) >>> "0123456789".split('').reve…

File::Temp::tempfileを使っている箇所でError in tempfile() using /XXXXXXXXXX: Parent directory (/) is not writableみたいなエラーが出る件

File::Temp::tempfileがおかしくなっててテンポラリファイルを作ろうとしたときに Error in tempfile() using /XXXXXXXXXX: Parent directory (/) is not writableみたいなエラーになってしまう件、File::Specが悪いみたいです。PathTools-3.2501で直ってい…

Re: Catalyst でテンプレートファイルがあったら表示するの術

(タイトル考えるのって面倒) my $template = $c->req->path . '.tts'; my $template = $c->action . '.tts'; の方がいいかも。アクションがindexとかdefaultの時のテンプレート名がおかしくなっちゃうので。(あと、Regex使ってる時とかマッチする奴全部を…

Packageの名前を動的に変更したい

# --- Foo.pm package Foo; sub foo { return 'result is foo'; } 1; # --- RenamePackageName.pm package RenamePackageName; sub from_to { my ( $class, $from, $to ) = @_; $from = "::$from\::"; $to = "::$to\::"; @{ %{$to} }{ keys %{$from} } = val…

Catalyst::Plugin::*でClass::C3は使わない(Catalyst-v5.7010)

Catalystの変更予定(?) - ヒルズで働く@robarioの技ログ NEXTよりClass::C3のほうが正しいMROになるのはわかるんだが - masaki@catalyst - Catalystグループあー、うん。確かにC::P::*でClass::C3使ってると、プラグインの組み合わせによってはエラーで起…

Root.pm(゚д゚)イラネ

lib/MyApp/Controller/Root.pmってあるじゃないですか。namespaceが空の奴。 そいつのせいで自分のRoot.pmが作れないじゃないですか。http://localhost:3000/root/みたいな。 Root2.pm作ってnamespaceいじればできるけど。そんなのやりたくないじゃないです…

Catalyst+FastCGIで「MySQL server has gone away」→mysql_auto_reconnect[DBIC]

[error] DBIx::Class::ResultSet::pager(): DBI Exception: DBD::mysql::st execute failed: MySQL server has gone awayなんていうエラーが出てたのですが、 FastCGI(Catalystの方?)では$ENV{GATEWAY_INTERFACE}も$ENV{MOD_PERL}もないので、どうもmysql_…

Data::Visitor::Callback-v0.08のバグ?

以下のバグはData-Visitor-0.11で直ってます。Diff from Data-Visitor-0.10 to Data-Visitor-0.11Data::Visitor::Callback-v0.08#visit_objectのforeach内にバグがある気がしてならない。。。 foreach my $class ( @{ $self->class_callbacks } ) { last unl…

DBIx::Class経由で取得する文字列にUTF-8 flagを付けたい[Catalyst]

以前からブログに書こうかどうか迷っていたものです。 DBIx::Class::UTF8Columnsでできるんですが、カラムを指定するのが面倒。 MySchemaはDBIx::Class::Schema::Loaderで自動生成してることもあって、あんまりMySchema/*をいじりたくない。 というわけで、i…

Catalystの変更予定(?)

しばらくぶりにCatalystを触っていたら、なにやらちょこちょこ変更されつつあるようなので、自作プラグインもちょこちょこ書き換えました。 configに使うキーにモジュール名を使う Catalyst::Plugin::ConfigLoader - Load config files of various types - m…

バージョンを指定してCPANモジュールをインストールする

Apache::MP3のバージョンを下げる 経由で Perl モジュールのバージョン指定インストール を知った。今までsearch.cpan.orgに行ってtarballダウンロードして展開してビルドしてインストールして、ってやっちゃってました。。。 非常に助かりマスク。 http://s…

UNAUTHORIZED RELEASEには気を付けよう

SOAP-LiteのUNAUTHORIZED RELEASEはSOAPを上書きするのね…orz

Plagger-v0.7.17でparser error : Input is not proper UTF-8, indicate encoding !

なにやらPlagger-v0.7.17(svn trunk)で parser error : Input is not proper UTF-8, indicate encoding !とか言われました。Plagger FAQにはWebService::Bloglinesバージョンアップしたら直るよ、とか書いてあったのですが、Bloglinesを使ってないのにこのエ…