Home > Perl

Perl Archive

CGIモジュールで RSS Auto-Discovery を作成する方法

  • 2006-09-14 (木)
  • Perl

小ネタ。以下のように書くことで、ページに対応した RSS Feed をブラウザに知らせる為の RSS Auto-Discovery : <link rel="alternate" /> タグを出力させることができるようです。

use CGI;
my $cgi = CGI->new;
print $cgi->header(-charset => 'utf-8');

print $cgi->start_html(
    -title => 'hoge',
    -head => CGI::Link({
        rel   => 'alternate',
        type  => 'application/rss+xml',
        title => 'RSS 2.0',
        href  => $cgi->url(-base=>1) ."/index.xml",
    }),
);

print $cgi->end_html;

Continue reading

メールのFromやToに日本語を使いたい - ヘッダ部分のMIMEエンコードについて

  • 2006-07-26 (水)
  • Perl

一般的なメーラーで受け取った際に、Fromの部分が

From: iandeth@example.com

みたいな素メールアドレスじゃ無く、

From: 石橋利真

のように任意の日本語文字列が表示されるようなメールを、CGIから送信したくて色々とお勉強。

Continue reading

Spreadsheet::ParseExcel - ごくごく普通の使い方メモ

  • 2006-07-06 (木)
  • Perl

川合孝典さん作の、Perlからエクセルシートを扱えるCPANモジュール - Spreadsheet::ParseExcel - の使い方基本形。サンプルコード備忘録。

Continue reading

文字列のutf8-flag状態を手軽に調べる - DBI::data_string_desc()

  • 2006-07-04 (火)
  • Perl

yet another way to peek at scalar's utf8-flag...

DBIモジュールのperldocを読んでいて「む、これイイかも」と思えたユーティリティ関数。任意の文字列なりスカラ変数なりを渡すと、utf8-flag状態 / ascii or non-ascii 判定 / 文字数 / バイト数 ... 等の詳細情報をポロッと返してくれます。

use DBI;
print DBI::data_string_desc('hoge');
#実行結果
UTF8 off, ASCII, 4 characters 4 bytes

Continue reading

モジュールをuseした際のメモリ使用量(増加量)を調べてみる

  • 2006-07-04 (火)
  • Perl

CPANモジュール: GTop

GTop - Perl interface to libgtop

perl.apache.org にある mod_perl パフォーマンスチューニングのドキュメントにて解説されていた、ある特定のモジュールを use した際のメモリ増加量を調べる方法。GTop っていうCPANモジュールを、こんな感じに使うことでお手軽に調べることができるようです:

Continue reading

一般ユーザ環境におけるCPANモジュールの使い方

  • 2006-06-19 (月)
  • Perl

先週公開した、じゃらんWebサービスを使ったサンプルサイト「シンプル宿検索」にて、perlのソースコードも一緒に公開してみたのですが、さっそく興味を持ってくれた方から問い合わせを頂きました。

cgiを実行させようとしたら以下のエラーが出てしまいました:
Can't locate Template.pm in @INC (中略) at search.cgi line 5 ...

Template.pm モジュールがインストールされてないよ!って怒られています。あー、コード公開する際は必要なCPANモジュールも一緒に添付しといてあげたほうが親切なのかな?いやでもそれ面倒くさいし無理あるなあ・・・。

Continue reading

いつでもどこでも、すぐに DateTime モジュールを使いたい

  • 2006-06-04 (日)
  • Perl

前回のエントリ 「Perlで日付・時間操作 - DateTime モジュールの使い方」で書いたとおり、とっても便利なDateTimeモジュールですが、強いて難点をあげるとすれば、必要な依存モジュールが多いこと = インストールが面倒くさい事かと個人的には思います。shell と make コマンドが使える環境ならば、"$ perl -MCPAN -e 'install DateTime' " で自動インストールしちゃえるのですが、これができない状況:

  • telnet 禁止の環境で cgi 作りたい場合 (無料ホームページサービス等)(顧客のサーバ環境での開発で、クライアントに信用されていない状況とか)
  • サーバの保守・セキュリティ体制がうんちゃらで make コマンドの利用が規制されている場合 (出くわした経験あり)

こんな状況下だと、とたんにDateTimeモジュールを利用する事は難しくなってしまいます。使いたいけど使えない。そんな状況でお悩みのあなたに・・・

Continue reading

Perlで日付・時間を操作 - DateTime モジュールの使い方

  • 2006-06-04 (日)
  • Perl

Perlには、日時の加・減算を扱うモジュールが標準でついてきません。僕の仕事場ではずっと、同僚が作ったオリジナルモジュールを皆で使いまわしていたのですが、今になって、世間的 (CPAN) にはどんなものがあるのか気になって調べてみました。※参考になったのは miyagawa 氏のメールマガジンの過去記事と、perl.com の The Many Dates and Times of Perl なるエントリでした。

Continue reading

Perl/CGI辞典 - 土井 毅さん 著 - にて use strict が推奨されていない件について

  • 2006-05-19 (金)
  • Perl

CGI/Perl辞典
Pocket詳解 Perl/CGI辞典 - WINGSプロジェクト 土井 毅 著, 山田 祥寛 (監修) 

仕事の息抜きに、会社の先輩が持っていた Perl リファレンス本を何気なく手にして読み始めたものの、とても賛同しがたい記述を発見してショックを受けました。ちなみに初版発行日が 2006年5月5日 の、最近書かれた本です。

Continue reading

lvalue がデバッグモードで正しく動作しない

  • 2006-04-25 (火)
  • Perl

参考document: perldoc attributes /lvalue

関数用の built-in attributes に lvalue ってのがあります:

Continue reading

Perl の use と require の違い

  • 2005-12-05 (月)
  • Perl

以前飲み会で、会社の先輩と「use と require の違いってなんじゃ?」てな話をした際、知識不足ゆえうまく答えが出せなかったのですが、Programming Perl 等をちょろちょろ読み始めた今なら、ちょっとはマシな回答が出来る気がした /w のでまとめてみました。

Continue reading

Attribute::Handlers と use encoding 'utf8' を併用した際の妖しい挙動

  • 2005-12-01 (木)
  • Perl

Attribute::Handlers を利用しているモジュール - Test::Class を使っていて出くわした現象。use encoding を宣言した、下記のようなスクリプトを実行しようとしたらコンパイルエラーになってしまいました:

Continue reading

XML::Simple は遅い説における意外な落とし穴 - おまけ編

  • 2005-11-29 (火)
  • Perl

前回の記事に引き続き、XML::Simple モジュールとその背後で利用されるパーサーにおける、ややおまけ的な内容について記述してみました。

Continue reading

XML::Simple は遅い説における意外な落とし穴

  • 2005-11-29 (火)
  • Perl

「XML::Simpleは処理速度が遅い」説といえばNDO::Weblogさんの記事 Perl で XML の処理はどれが速いかベンチ がすぐに思い浮かびます。初見した時はずいぶん感心した覚えがあり、以来、業務で XML::Simple を使う事に多少なりとも躊躇するようになったものです。そんな中、現在仕事で XML parsing with Perl な案件を受け、CPANにUPされている様々な XML 解析系モジュールの処理速度を計測しているのですが、その際気付いた、XML::Simple の意外な落とし穴についてまとめてみました。

Continue reading

Benchmark モジュールの使い方、結果情報の読み方

  • 2005-11-21 (月)
  • Perl

仕事で Benchmark モジュールを使う機会があったので、使い方&結果情報の読み取り方をまとめてみました。基本的には perldoc 読めばオールオッケーでしょ?と思っていたのですが、docs では結果情報の読み方についてはあんまり触れられていなかった為、ガッツリ補足してみました。

Continue reading

日本語対応 文字組み→画像描画 Module 作ってみた - 初 CPAN Module 登録

  • 2005-10-04 (火)
  • Perl

20051004_01s.gif

初めて CPAN に module をアップしてみました。HOWTO についていろんなドキュメント読みつつ、週末嫁を寝かしつけた上でこっそりと module 用の pod ドキュメントを書きつつ... やっとこさ形になりました。これで気分はいっぱしの Perl 野郎(気分だけ?)。

http://search.cpan.org/~bashi/

以下モジュールの簡単な概要です。詳細は CPAN 上のドキュメントを参照って事で。

Continue reading

FindBin module を使って use lib 記述をシンプルにする

  • 2005-08-24 (水)
  • Perl

RSS Feedの簡単な加工の仕方

  • 2004-05-13 (木)
  • Perl

CNET Japan の最新ニュースヘッドラインを自分のBLOGのサイドバーに表示させる といった、RSS(*.rdf)を公開している任意のサイトの情報を自分のページに設置できる、RSS FeedをJavaScriptとしてHTMLに埋め込む方法をご紹介。以前、2回に渡って XML::Simple を使った PERL でのXML処理手法を書きましたが(コレコレ)、今回はその手法を使っての実例紹介です。また、Googleにて "RSS javascript" と検索すると、

 miyagawa氏のBlog Developer's Cookbook
 → RSS feed を JavaScript で HTML に埋め込む
 naoya氏のNDO::Weblog
 →RSS を整形して SSI で表示してみました

等のページにて同様の機能を実現する方法が紹介されていましたが、ここで紹介するのはそれらとはまた違った、「簡単なソースコード」「更新に手間がかからない」といった点を重視した実装方法を述べてみます。

Continue reading

XML::Simple の使い方 part.2

  • 2004-04-09 (金)
  • Perl

search.cpan.org XML::Simple
↑基本的な使い方はCPANにすべて記載されてます(当たり前)。
ですので作者本人も触れていない、「日本語を含んだXML」をXML::Simpleで取り扱う際のポイントをココで紹介してみようかと思います (仕事で使う際にbashi本人が調べて気づいた事のみになりますが)。

Continue reading

XML::Simple の使い方

  • 2004-04-09 (金)
  • Perl

search.cpan.org XML::Simple
↑基本的な使い方はCPANにすべて記載されてます(当たり前)。
ですので作者本人も触れていない、「日本語を含んだXML」をXML::Simpleで取り扱う際のポイントをココで紹介してみようかと思います (仕事で使う際にbashi本人が調べて気づいた事のみになりますが)。

Continue reading

XML::Parser と encoding指定について

  • 2004-04-09 (金)
  • Perl

Perl XMLでencoding='Shift_JIS'や'euc-jp'を使う

Hippo2000さんの上記ページにお世話になったのでご紹介。
PerlでXML扱う際におそらく使う事になるであろう XML::Parser モジュールですが、標準インストールの状態ではエンコーディング指定が EUC-JP や Shift_JIS になっているXMLを読み込むとエラーになります(XMLのヘッダ情報が以下のようになっているもの)。

Continue reading

Perl version 5.003 と CPAN

  • 2004-04-09 (金)
  • Perl

ここ数年、大半の開発を perl5.003 環境下にて行ってきました。jpatch があたっているので日本語文字周りの配慮は一切不要なのは便利ながらも、自分的にそれ以上に痛いのが

CPANモジュールが使えない場合が多い

という点です。何故なら、後継バージョンにて採用されたスクリプト記述ルールを使って書かれているソースを version 5.003 で解釈(compile)出来ないから。具体例を1つ挙げると、HTML::Template があります。一番古いバージョンである 2.0 でも perl5.003 環境では使えません。何故かと言うと、ソースの至る所にこんな記述があるからです:

Continue reading

Home > Perl

Search
Feeds

Page Top