2010年10月09日

hellow worldを出力するMTプラグイン

MTで単純にhellow worldを出力するプラグインを作成

package MT::Plugin::Hello;
use base 'MT::Plugin';

use strict;

# register plugin
my $plugin = __PACKAGE__->new({
name => 'Hello',
key => 'hello',
version => '1.00',
author_name => 'Your name',
description => 'Description of plugin',
registry => {
tags => {
function => {
Hello => \&_hdlr_hello,
}
}
}
});

MT->add_plugin($plugin);

sub _hdlr_hello {
return 'Hello World !';
}
1;


次のようのな「Hello World !」を出力するタグが利用できるようになる。

<mt:Hello>
タグ:MT
posted by ねこまんま at 02:47| Comment(0) | TrackBack(0) | MT | このブログの読者になる | 更新情報をチェックする

2009年05月10日

配列のsort

配列をソートする。

sort $array;

逆順でソートする。

reverse sort $array;

ハッシュをソートして表示

foreach my $key (sort keys %hasu ) {
print $hasu{$key};
}
タグ:reverse sort
posted by ねこまんま at 16:16| Comment(0) | 関数 | このブログの読者になる | 更新情報をチェックする

ハッシュ

ハッシュ-連想配列のこと。つまりキーに通し番号以外の文字列を指定した配列。

%hoge;

配列の接頭文字は「%」

挿入時は

$hoge{key}

みたいに一個づつ挿入していってもよい。

%hoge = ('key1', 'value1', 'key2', 'value2');

みたいにキーと値を交互にまとめて入れることも出来る。
(なんか気持ちの悪い指定ですね)

%hoge = (
"key1" => 'value1',
"key2" => 'value2',
);

こっちでもおk。こっちのが可読性が高そう。

参照時は

$hoge{key}

みたいに参照。

@key = keys( %hoge );

見たいにするとキーをまとめて配列に格納できる。

これを利用してループで取り出す際は

foreach $key (keys %hoge){
print $hoge{$key};
}

なんかで取り出すよろし

参考:ハッシュ [Perl講座 -Smart]
タグ:keys
posted by ねこまんま at 16:02| Comment(0) | 基本 | このブログの読者になる | 更新情報をチェックする

Data::Dumper

デバッグに便利なData::Dumper

use Data::Dumper;

print Dumper($foo);

としておくと構造体を視覚化して表示してくれる。
posted by ねこまんま at 15:37| Comment(0) | デバッグ | このブログの読者になる | 更新情報をチェックする

2009年05月09日

XML::TreePP

XML::TreePPがすごく便利

XMLを簡単に多次元変数(ハッシュ/配列)に変換してくれる。

use XML::TreePP;

my $tpp = XML::TreePP->new();
my $tree = $tpp->parsehttp( GET => "http://www.hoge/rss.xml" );
for $target ( @{$tree->{rss}->{channel}->{item}} ){
print $target->{pubDate}." ".$target->{title}."
";
}

みたいな感じで。

当初LWP::Simpleで外部ファイルを読み込んで、XML::Simpleで解析してと言う感じにしようかと思っていたけど、XML::Simpleが文字化けしすぎて断念。

XML::TreePPだと外部ファイルの読み込みまで合わせてやってくれる。



XML::TreePP

posted by ねこまんま at 00:30| Comment(0) | モジュール | このブログの読者になる | 更新情報をチェックする

2009年05月08日

CGI::Carp qw(fatalsToBrowser);

CGI::Carpを利用するとブラウザにエラーを表示してくれる。

use CGI::Carp qw(fatalsToBrowser);
タグ:cgi::carp
posted by ねこまんま at 18:42| Comment(0) | デバッグ | このブログの読者になる | 更新情報をチェックする

#!/usr/bin/perl -w

#!/usr/bin/perl

だとcgiが動作しなかったので

#!/usr/bin/perl -w

に変更したら動作した。

改行コードをCRからLFに変更したら

#!/usr/bin/perl

でもちゃんと動作するようになった。
posted by ねこまんま at 16:23| Comment(0) | デバッグ | このブログの読者になる | 更新情報をチェックする

2009年04月14日

rfc822 形式のフォーマットを作成する。

localtimeで取得したフォーマットをRSSなどで利用するrfc822 形式のフォーマットに変更する。

my $ta = localtime(time());
my ($year, $mon, $mday, $hour, $min, $sec, $wday) =
($ta[5] + 1900, $ta[4] + 1, $ta[3], $ta[2], $ta[1], $ta[0], $ta[6]);
my $wdayname = ("Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat")[$wday];
my $monname = ("Jan", "Feb", "Mar", "Apr", "May", "Jun",
"Jul", "Aug", "Sep", "Oct", "Nov", "Dec")[$mon - 1];
my $datetime = sprintf("$wdayname, $mday $monname $year %02d:%02d:%02d +0900",
$hour, $min, $sec);

参考:localtime
posted by ねこまんま at 14:51| Comment(0) | 日記 | このブログの読者になる | 更新情報をチェックする

ファイルの更新日の取得

statとlocaltimeを利用して更新日の取得

my @foo = stat('log/new_ys.cgi');
my $mtime = localtime($foo[9]);

参考:ファイルタイムの取得
参考:localtime
タグ:stat localtime
posted by ねこまんま at 14:46| Comment(0) | 関数 | このブログの読者になる | 更新情報をチェックする

CGIでhtmlエスケープ

CGIモジュールでHTMLエスケープを行う。

use CGI;
print CGI::escapeHTML($html);

ただし、CGIモジュールのデフォルトの文字コードはISO-8859-1。

日本語環境では以下のような文字コードの指定が必要

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

参考:【Perl】HTML エスケープとXSS対策
参考:CGI.pm の charset('utf-8')


posted by ねこまんま at 14:40| Comment(0) | モジュール | このブログの読者になる | 更新情報をチェックする
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。