perl

HTML::Templateをデフォルトのまま使うと痛い目を見る

すぐに忘れるのでメモ。 HTML::Templateをデフォルトのまま使うのはかなりやっかい。 テンプレートで定義していないパラメータも、HTML::Templateに与えてしまうとエラーが出る。 テンプレートにセットする値は、事前に不要な値を削除する必要があんのかなと…

Perlで携帯から端末IDを取得する方法

最近DocomoのimodeIDの取得対応をしたので、とりあえずまとめ。■Docomo DocomoはimodeIDというのがhttp環境であれば下記のようにして取得できる。 現在、https環境では送信されないので注意が必要です。 Perlのスクリプト側では下記のようにして取得 my $uim…

YAPC::Asia 2008に参加登録しました

Perlに関するカンファレンスYAPC::Asia 2008の登録受付が始まったようなので申込みました。 http://conferences.yapcasia.org/ya2008/ これとか面白そう。 「(仮題) モバゲータウン基盤モジュールオープンソース化と解説」 http://conferences.yapcasia.org/…

PerlでPDF自動生成

PDFをperlから動的に作成するPDFJというフリーのソフトウェアを触ってみた。 http://hp1.jonex.ne.jp/~nakajima.yasushi/UTF8にも対応しているということで、今回はUTF8で作成。もちろんPerlのソースはUTF8で保存してます。PDFJの良いところは、動的に枠線付…

Unicodeな文字を使っているエクセルデータを、DBに一括登録する方法

Unicodeにしか対応していない特殊な漢字を含むエクセルファイルがあるとします(レアケース?) これを、DBサーバのUTF8形式のテーブルに一括登録する方法(今回はPostgreSQLで実施。CSVファイルインポート文が違うだけで、MySQLでも他のDBサーバでも対応可能…

UTF8のデータを、Jcode.pmで全角半角カナ変換して文字化け

Jcode.pmで、h2zというメソッドがあり、これを使うと、半角カナを全角カナにできるってことだったので、下記のように実装(ファイルはUTF8で保存) use Jcode; use utf8; my $str = 'アイウエオ'; my $obj = Jcode->new($str,'utf8'); #半角カナを全角カナに変換 …

SQL::Abstractでお手軽DB操作

DBにPerlのDBIモジュールを使ってInsertするときは、下記のようにしてました。 テーブル名はTableName,カラム名はhoge1,hoge2,hoge3とした場合 my $dbcon = DBI->connect(....); my $dbInsert = $dbcon->prepare(q/insert into TableName (hoge1,hoge2,hoge3…

SJISでダウソ

ちょっと訳あって、sjisのwebアプリを作ってます。DBはPostgres(EUC_JP), 言語はPerl (SJIS)、HTMLもSJIS。 Postgresもsjisネイティブにしたかったけど、eucかutf8しかサーバ側のエンコーディングは対応していないので、クライアントエンコーディングをsjis…

本番機でエラー画面に情報を出さない

perlでCGIの開発をする場合、 use CGI::Carp qw(fatalsToBrowser); とすると、InternalServerErrorの画面に、error_logに出力されるような内容のエラーメッセージを出してくれるので、開発が効率的に進む。 ただ、開発機ではいいんだけど、本番機ではこのエ…

CGIでUTF8の入力データを受け取ると文字化け

CPANのCGIモジュール3.15では問題なかったんだけど、3.29にしたら突然問題発生。UTF8でデータをブラウザから受け取り、CGIモジュールのparam関数でデータを取得すると、「wide character print」みたいなapacheエラーが発生。 前回(http://d.hatena.ne.jp/ic…

perlのUTF-8環境にて、DBエラーが出る

今の開発は、DB, HTML, プログラムの文字コードを全てUTF-8で統一している。そうすると、charsetがutf-8になるので、ブラウザから送信される文字もutf-8になる。それを受け取って、DBにutf-8で書き込む。DBのデータを画面に出力する場合もDBからUTF8でデータ…

ImageMagickのインストール

rpmでImageMagickがインストールされてたので、perlMagickもCPAN経由で普通にインストールできると思い実行したけど、MagickCore.hが無いというエラーでインストールできず、色々調べて下記の方法で成功したのでメモ。環境はVineLinux4.1下記のサイトから、I…

確認画面の実装

WEBでよくある登録・修正・削除の際の確認画面の実装をしてるんだけど、これ結構メンドクサイ。確認画面の例として、Mixiだったら日記を登録する際に、登録確認画面があって、それで問題なければ実際にDBに登録を行ってる。確認画面を作ると、以下の2フロー…

hiddenタグのvalueに入れた値は、ブラウザでunescapeされる

これ知らなくてかなりはまった。hiddenのvalueにセットしたデータがタグと改行コードをエスケープしたデータで、それをPOSTすると、サーバで取得したhiddenの値も当然エスケープされた値そのままかと思っていたが、実はエスケープされている文字は、valueの…

CentOS4.4でperlのバージョンアップ

CentOS4.4は、perl5.8.5がインストールされるので、perl5.8.8にしたい場合は、下記の操作が必要。 vi /etc/yum.respos.d/CentOS-Base.repo enable=0をenable=1にするだけ。 [centosplus] name=CentOS-$releasever - Plus mirrorlist=http://mirrorlist.cento…

問合せページ開発メモ

会社のサイトに問合せページを作る。フリーのCGIを使おうかと思ったけど、著作権表示とか色々面倒なので自作した。CPANモジュール使うと、簡単に作れちゃう! 今回の機能はこんな感じ。 問合せ・申込み機能 必須項目・文字列チェック メールアドレスが正しい…

XML::RSS

RSSの出力をperlから行ってみた。 とりあえずCPANからXML::RSSモジュールをインストール perl -MCPAN -e shell cpan> install XML::RSS これをやると、XML::RSS::Expatでコンパイルエラーが出る。 ということで、Expat XML ParserというCのライブラリをイン…

CSV形式のデータをRSS化

日記のデータがCSV形式であり、それを単純にRSS対応させようと思い、ちょっとだけ調査。 XML::RSSが使えそうなので、これをそのまま使おう。 多分これ使えばすぐ出来そう。

Apache2 + mod_perl2

昨日、mod_perl2をインストールした時、すでにCGI.pmの3.10がインストールしてあったので問題ないっしょと思ってバージョンアップしてなかった。 そして、mod_perl用のディレクトリで、use CGIを利用するスクリプトを実行させると、 Can't locate Apache/Req…

Apache2 + mod_perl2

とりあえずmod_perlを入れてみる。 事前にCPANから、CGI.pmとCompress::Zlibを落としてインストールしておく。そしてCPANからmod_perl2をダウンロード。Apache2にはmod_perl2が必要なので間違えてmod_perl1をダウンロードしないように。ApacheのDSOを使って…

mod_perlのオライリ本がネットで公開

ちょっとCGIのパフォーマンス、DB接続の負荷の低減も兼ねて、mod_perlの導入をしようかと思ってるけど、敷居がちょっと高いね。変数の初期化とかスコープとかをかなり考えて設計しておかないと修正がつらそう。 とりあえず、オライリのmod_perlの本の内容(…