Perlプログラムに関する各種メモ書き:タグ「perlモジュール」での検索

特定のタグのエスケープをやめたい。

入力されたデータのタグをエスケープするには例えば下記のようなルーチンで

やったりしますが

sub escape_tag() {
	my ($str) =@_ ;
	return unless(defined $str);
	$str =~s/&/&/g;
	$str =~s/</</g;
	$str =~s/>/>/g;
	$str =~s/"/"/g;
	$str =~s/,/&#44;/g ;
	return $str;
}

これだと全てのタグがエスケープされてしまいます。

そこで特定のタグ(例えば<a> <img>)のみエスケープしないようなモジュールがCPAN

にないかと探したところ。。。

こんなの発見

■ HTML::EscapeEvil (Testクリア 6件)

http://search.cpan.org/~holly/HTML-EscapeEvil-0.05/

■ Tripletail::TagCheck (Testクリア なし?)

http://search.cpan.org/~mikage/Tripletail-0.17/lib/Tripletail/TagCheck.pm

■ Template-Toolkitを使う場合は

http://logic.moo.jp/memo.php/archive/318/

No.319
11/30 17:38

edit

perlモジュール

use ○○○; 行をすっきりさせるToolkitモジュール

さらにuseするモジュールが一つ増える事を気にしなければ
意外に使えるかも。

■ Toolkit
http://search.cpan.org/dist/Toolkit/lib/Toolkit.pm
No.135
03/26 13:49

edit

perlモジュール

ORマッピングデータベースモジュール Class::DBI をテスト

■ データベースへのデータのINSERT
my $obj = Class->insert(¥%data);

■ データのSELECT(オブジェクトを返す)
$obj = Class->retrieve( $id );
$obj = Class->retrieve( %key_values );

■ データのSELECT(全件の配列を返す ※使ってはダメ)
@cds = Music::CD->search(year => 1990);
@cds = Music::CD->search(title => "Greatest Hits", year => 1990);

■ Pagerを使ったデータのSELECT
use Class::DBI::Pager;
my $pager = Object->pager(20,1);#(1ページの個数,ページ)
my @page1 = $pager-> retrieve_all

ドキュメント:http://search.cpan.org/dist/Class-DBI/lib/Class/DBI.pm

日本語訳:http://bulknews.net/lib/doc-ja/Class-DBI.ja.html

関連モジュール:http://blog.nomadscafe.jp/archives/000457.html

Class::DBI::Iterator

http://search.cpan.org/~tmtm/Class-DBI-v3.0.14/lib/Class/DBI/Iterator.pm

Class::DBI::Plugin::Iterator

http://www.annocpan.org/~ASAKURA/Class-DBI-Plugin-Iterator-0.11/lib/Class/DBI/Plugin/Iterator/Nihongo.pod

Class::DBI::View

http://search.cpan.org/~miyagawa/Class-DBI-View-0.07/lib/Class/DBI/View.pm

Class::DBIとTime::Piece

No.134
08/12 10:21

edit

perlモジュール

ping送信モジュール Net::Ping

use Net::Ping;
my $host="192.168.0.1";
my $timeout=0.1;
my $p = Net::Ping->new("icmp");
if $p->ping($host, $timeout){
        print "$host is alive.?n";
}
$p->close();

root ユーザになれる環境でないと実行できないみたい

引用元:http://www.augustus.to/blog/3128/archives/000042.html

No.85
03/26 13:58

edit

perlモジュール

プログラムの実行時間の計測

■ アバウトなプログラム実行時間の取得

my($starttimes_user) = (times())[0];
# 実行時間を計測したい処理をここに記述
my($endtimes_user) = (times())[0];
my $exectimes_user=$endtimes_user-$starttimes_user;
print "[$exectimes_user]秒";

■ 詳細なプログラム実行時間の取得

use Time::HiRes qw(gettimeofday);
my ($sec, $microsec) = gettimeofday;
printf "%d %d?n", $sec, $microsec;
No.69
03/26 13:59

edit

perlモジュール