カテゴリー
MySQL perl プログラミング

DBI & MySQLでカウントする

$COUNT = $dbh->selectrow_array("SELECT COUNT(*) FROM  `テーブル名` WHERE `カラム` = '条件'");
カテゴリー
MySQL perl

自分が追加した最新のauto_increment番号を取得する

$sql = "INSERT INTO `db_01` ( data1, data2 ) VALUES ( $data1, $data2 )";
$sth = $dbh->prepare( "$sql" );
$sth->execute();
$id = $sth->{mysql_insertid};

これで$idに「自分が追加した最新のauto_increment番号」が代入される

ただし下記のようにdoでは使えない。

$sql = "INSERT INTO `db_01` ( data1, data2 ) VALUES ( $data1, $data2 )";
$sth = $dbh->do( "$sql" );
$id = $sth->{mysql_insertid};
カテゴリー
perlモジュール

CGI::SpeedyCGI(PersistentPerl)によるPERLの実行速度アップ

SpeedyCGIの導入

# yum install perl-CGI-SpeedyCGI

※要rpmfogeの導入

概要:http://perldoc.jp/docs/modules/CGI-SpeedyCGI-2.21/SpeedyCGI.pod

MAXRUNS
コマンドライン    : -rN
環境変数       : SPEEDY_MAXRUNS
CGI::SpeedyCGI    : MAXRUNS
mod_speedycgi    : SpeedyMaxruns
デフォルト値     : 0 (つまり上限なし)?500? ※
説明:
PerlインタープリタはN回実行すると、終了する。

例)

#!/usr/bin/speedy -- -r500


500回実行するとプロセス終了。
グローバル変数も初期化される。


http://perldoc.jp/docs/modules/CGI-SpeedyCGI-2.21/SpeedyCGI.pod
では500とあるが、
http://homepage3.nifty.com/hippo2000/perltips/CGI/SpeedyCGI.htm
では0となっている。
500が正しいか?

使用する際の注意点

基本的にパスはフルパスで書かなければならない。

○良い例) /home/html/cgi-bin/xxx.cgi

×悪い例) ./xxx.cgi

全てのグローバル変数の値はクリアされない

プロセスが死ぬまで変数の値は引き継がれる。

サーバのリブートやApacheのリスタートが無く、プロセスが死なない事を仮定すると

$a += 1;

はずっと加算されていく事になる。

カテゴリー
Apache perl

ApacheでCGIの負荷検証(ベンチマークテスト)

Apacheには、標準で「ab」(Apache Bench)というツールが付属している。abの構文は、

ab [options] URL

のように、オプションとテストを実行するURLを指定する。

詳しい使い方は以下
http://www.atmarkit.co.jp/flinux/rensai/apache15/apache15b.html

PERL(CGI)の処理時間を計測するには?

ターミナルを立ち上げ、パスの前に「time」と打ち込むだけ。
たとえば、「./myProgram.pl」というPerlスクリプトの場合

$ time ./myProgram.pl
real    0m3.093s
user    0m2.820s
sys     0m0.150s

詳しい使い方は以下
http://fstyle.ddo.jp/archives/2006/10/post_367.html

カテゴリー
perlモジュール

HTML::Mason

HTML::Mason というperlモジュールを検索中に発見。
どうやらphpのようにhtml中にperlを埋め込んで使うらしい。

後で調べてみよう。
てか、情報少なすぎなんだよな。。