O R E P A S O:Perl覚書

本文へジャンプ
S
M
L
Search by Google
menulavel
Valid CSS!
Spreadfirefox Affiliate Button
情報ボランティアの会(八王子)
anchor
LSD装着編
CGI(Perl)覚書
●ディレクトリ内の画像ファイル(jpeg)を探しでランダムに表示する
#!/usr/bin/perl
use warnings;
use strict;

$dirname  = "activate";
opendir(IN,"$dirname");
@filearray = readdir(IN);
closedir(IN);

foreach $i ( @filearray ) {
	if ( $i !~ /.jpg/i ) {
			push(@jpgarray, $i);
		}
	}
srand(time|$$);
$pt = int(rand(@jpgarray));
print "$pt\n";

;# end

●perl ver 4と5の違い
perl ver 4の呼び出し形式 &jcode'convert(*......)
perl ver 5の呼び出し形式  jcode::convert(\$.......)
●sendmail
sendmail -t:To、Cc、Bccをヘッダーで指定する。
sendmail -f name:送信者の指定をする。
sendmail -i:文章中のピリオドだけの行を無視する。
確認方法:
unless (-f $sendmail) {	print "$sendmail がない" }
unless (-x $sendmail) {	print "$sendmail が実行できない" }
使用例:
unless (open(MAIL,"| $sendmail -t -i")){ エラー処理 }
open my $mail, "| $sendmail $mailto" or die $!;
●HTML::Parser
HTML文をパースしてくれる
my $parser = HTML::Parser->new( api_version => 3,		# 通常3。2と後方互換
   start_h => [\&start_tag, "self, tagname, attr, attrseq, text"],
   text_h  => [\&text, "self, text"],
   end_h   => [\&end_tag, "self, tagname, text"],		# \.. はsub {...}や\@arrayでも良い
   marked_sections => 1,
);
$parser->parse($res);
$parser->eof;

sub start_tag {
	my ($self, $tagname, $attr, $attrseq, $text) = @_;
	開始タグでの処理; }
sub text {
	my ($self, $text) = @_;
	テキストでの処理; }
sub end_tag {
	my ($self, $tagname, $text) = @_;
	終了タグでの処理; }
;# end
handler_name:
他に、start_document_h、end_document_h、declaration_h、comment_h、default_hがある。
詳しくは:http://search.cpan.org/~gaas/HTML-Parser/Parser.pm
http://homepage3.nifty.com/hippo2000/perltips/html/Parser.htm

●Content-type
print "Content-type: text/plain; charset=utf-8\n\n";
print "Content-type: text/html; charset=utf-8\n\n";
print "Content-type: text/xml; charset=utf-8\n\n";
charsetはShift_JIS,EUC-JP,ISO-2022-JP,UTF-8,UTF-16がある。

画像その他:
print "Content-type: image/png\n";
print "Content-type: image/gif\n";
print "Content-type: application/x-lzh\n";
ヘッダーはさらに"Content-Disposition:"、”Last-Modified:”、"Content-length:"などが続き、"\n"で閉じます。 Last-Modifiedはこんな感じで。
my ($sec,$min,$hour,$mday,$mon,$year,$wday,undef,undef) = gmtime(time);
my @days = qw(Sun Mon Tur Wed Thu Fri Sat);
my @mons = qw(Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec);
sprintf("%3s, %02d %3s %4d %02d:%02d:%02d GMT"
	,@days[$wday],$mday,@mons[$mon],$year+1900,$hour,$min,$sec);

●QRcodeの作成
#!/usr/bin/perl
use warnings;
use strict;
use GD::Barcode;
注意:
GD::Barcode::QRcode (0.01) 40行目に問題があるので直す
#$oSelf->{Version} = $rhPrm->{Version} || 1;
$oSelf->{Version} = $rhPrm->{Version};

●Perlの文法のチェック
Perlの文法のチェックしてくれるサイトです

http://www.e777.co.jp/perlcw/perlcw.html

←BACK | NEXT→