perl

4/9ページ

フォームバリデーションモジュール FormValidator::LazyWayでハマった点

FormValidator::LazyWay フォームのバリデーションルールをアプリケーションで統一出来るモジュールで、便利そうなので試してみたところ FormValidator::LazyWay::Rule::String の nonsymbol_ascii methodでハマったのでメモ。 FormValidator::LazyWay::Rule::String - search.cpan.org ページの設定サンプルに username: rule: - String#nonsimbol_ascii: args: allow: - '_' - '-' という記述があるのだけれど、これが間 […]

CentOS5.7にperlbrewをインストール

perlbrewのインストール Perlbrew 本家の手順でインストール&初期設定 $ curl -kL http://install.perlbrew.pl | bash $ ~/perl5/perlbrew/bin/perlbrew init $ echo 'source ~/perl5/perlbrew/etc/bashrc' >> ~/.bashrc $ source ~/.bashrc エラーの対処 CentOS5.7で試していたところエラーが出た。 Use of uninitialized value in split at... は一時的なもの(perlをイ […]

perlでSHA1ハッシュ チェックサムの作成でWide character in subroutine…

Digest::SHA1でsha1ハッシュ値を作成する時に日本語(内部文字列 utf8フラグ有り)を含むとWide character in subroutine...とエラーになってしまう。 use utf8; use Digest::SHA1 qw/sha1_hex/; print sha1_hex("あいう"), "\n"; # エラー Encodeすれば大丈夫だけど、Mojolicious使いとしてはMojo::ByteStreamを使おうと思う。 use utf8; use Mojo::ByteStream 'b'; print b("あいう")->sha1_sum->t […]

macでcpanシェルやscraperシェルのカーソル移動とか履歴を有効にする

Bundle::CPAN をインストールすれば良いらしいけど、makeが必要だったりするので注意。 makeを使うにはXcodeをインストールする必要があります。 makeへのシンボリックリンク作成 sudo ln -s /Developer/usr/bin/make /usr/bin/make Bundle::CPAN をインストール cpan cpan[1]>install Bundle::CPAN ※cpanのところは sudo cpan だったかも。 cpan起動して上カーソルの時に ^[[A とかでなければがインストール成功。 これでカーソル移動とか履歴とか使える!

Business::PayPal::API::ExpressCheckoutで住所とか氏名とかの日本語が正しく送れない理由

PerlでPayPalのExpressCheckoutを実装するのにBusiness::PayPal::APIを使っているのだけれど、日本語(2byte文字)がうまく送信できない。 UTF-8で送ろうが、フラグ付きにしようが、だ。 散々悩んだ挙句、原因はSOAP::Liteが勝手にbase64エンコードするからだと判明。 Business::PayPal::APIは内部でSOAP::Liteを使用していて、Asciiだとそのままなのだけれど、それ以外はbase64にエンコードする仕様の様子。 前々から、例えば、OrderDescription に日本語を使うと上手くいかないと思っていたのだけれ […]

MojoliciousアプリをCGIとして動作させる時は、静的ファイルの扱いに注意が必要

MojoliciousアプリケーションをCGIで動かす時に、スタイルシートや外部JavaScriptファイル、画像など静的ファイルの扱いには注意が必要になる。 これはテンプレートでタグヘルパーを使った時、例えば <%= stylesheet '/css/style.css' %> とスタイルシートを読み込んだつもりだけど、これはスタイルシートを読み込むCGIを実行するのと同じ(スタイルシートのURLにリダイレクト処理するCGIとして実行される) 静的ファイルを呼び出す回数分のCGIが実行されることになるので、パフォーマンスも悪くなることは当然ながら、データベースの接続処理をstar […]

Mojoliciousで設定ファイルを読み込んで値を使う時のTips

configファイルの読み込み 設定ファイルを読み込む / Mojoliciousリファレンス - サンプルコードによるPerl入門  設定(コンフィグ)ファイルを読み込むにはMojolicious::Plugin::Configを利用します。 というように、Mojoliciousアプリで設定ファイルを使う事ができる。例えば etc/MyApp.conf を読み込むには以下のような感じ。 stash_keyはオプションで設定できる(デフォルトはconfig?) etc/MyApp.conf { # MyApp config # サービス名 SARVICE_NAME => 'hogehog […]

MojoliciousでDBIx::CustomやDBIx::Connectorを使う時

すぐ忘れるし、どこにあったか分からなくなるのでメモ。 Mojolicious - GitHubより引用 package MyApp; use Mojo::Base 'Mojolicious'; use DBIx::Custom; has dbi => sub { my $dbi = DBIx::Custom->connect(...); return $dbi; }; sub startup { my $self = shift; ### YOU MUST NOT CALL dbi() method in starup(). } リンク先にはBad Exampleもあるので参考に。

DBIx::Customで where を設定する時の注意点

DBIx::Custom - search.cpan.org DBIx-Custom-0.1705 DBIx::Custom select メソッドの whereの項目を見ると様々な指定方法が出来ることが分かる。 注意する点はStringを渡す時。 where => "url = 'http://hoge.com/huga.cgi?key=value' ", 上のように条件に ? が含まれる場合、SQLの作成に失敗する。(DBIx::Custom::QueryBuilder::build_queryでかな?) ? がメタ文字として扱われるため?(\?とエスケープしてもダメ) Hashリフ […]

1 4 9