2005-06-01から1ヶ月間の記事一覧

コンストラクタの継承

親 = Kaizoku.pm 子 = onepiece.cgiKaizoku.pm sub new { my $class = shift; my %args = @_; my $self = { tmpl_dir => $args{tmpl_dir}, tmpl_message => $args{tmpl_message} }; bless $self, $class; }これが、親のコンストラクタです。ここに、tmpl_for…

修正で戻った時、フォームにデータを残す

確認画面で、「修正」で前の画面に戻った時に、 データが残ってる場合と消えてしまう場合がありますよね。 データが残っているのはブラウザによって違うので、確実に残すためには プログラムできちんと指定してあげなければ。「戻る」ボタンで今まで使用して…

メールアドレスチェック

では、以上のことをふまえて、メールアドレスのチェックをしてみましょう。 今回は、携帯を含むことにします。携帯を含まない場合は、Perlメモ を使うとほぼ完璧なメールチェックができると思います。まず、携帯で許可されているアドレスはというと、 AU .(…

正規表現その3

$1 =~ /[^_0-9a-zA-Z\-\.]/ はて。なんですかね?これは。/パターン/これはOK。[^_0-9a-zA-Z\-\.]なんだこれ。。。 文字クラス マッチングの対象となる文字列中に、[ ] (ブラケット)で囲んだ文字の いずれかをマッチさせるため表現です。 ー(マイナス)は、…

正規表現2(例題)

これはどういう意味か。 if ($str =~ /^(.+)@(.+)$/) /パターン/という形なので、中のものにマッチするかどうか調べています。^(.+)なんですかね?これ。複数の文字にマッチ ^ 文字列(行)の最初にマッチする $ 文字列(行)の最後にマッチする *(アスタリスク…

正規表現その1

パターン結合演算子 スカラー変数(式)> =~ 演算子、置換演算子、変換演算子> 例: $input =~ s/&/&/g スカラー変数(式)とマッチ演算子、置換演算子、変換演算子を結合する。 左側はスカラー変数(式)であること。 マッチ演算子 /パターン/[修飾子]ある文字…

文字数制限

文字の長さを調べるlength関数を使います。 $comment #制限したい文字 if(length($value)>10) { push(@message, '5文字以内で入力してください。'); } length関数で出る文字数は半角文字のバイト数なので、 全角の場合は2倍した数字を入れなくてはいけません…

HTML::Templateモジュール

ちょっと思い出しメモ。 テンプレート作成 my $template = new HTML::Template(filename => 'kaizoku.html'); テンプレートに値をセット $template->param(prev => $perv); $teplate->param(next => $next); HTMLの作成 my $body = $template->output(); HTM…

モジュール小技

小技です。子モジュールで属性(変数)をセットする部分がありました。to_email => ['mail'], from_mail => ['ruffy@kaizoku.co.jp']ここです。これは、メールフォームの作成で、問い合わせ相手に自動返信するものなんですが、 ここに問い合わせてきた人のアド…

モジュールの利用

モジュールの作り方はわかりました。では、うまく利用してみましょう。 モジュールA → モジュールB → メイン処理 AはBの親で、Bはメイン処理の親という場合。 モジュールA コンストラクタ sub new { my $class = shift; my %op = @_; #ハッシュで受け渡しす…

KCatch

KCatchは、エラーが起きた時に、赤い文字で知らせてくれるもの。 use KCatch qw( execdata );__DATA__ #(デバッグツール) なるべく上の方に書きましょう。

use lib

use lib './cgi-lib'; モジュールファイルは全てcgi-libに入れます。 そして、どこにモジュールがあるか書いておきます。 それが、use lib。

オーバーライドの位置

!!オーバーライドは、処理の頭で行うこと。!! 個人的な覚え書き sub start { my $self = shift; my @message; $self->SUPER::start();#ここに書かないとエラーになるよ my $query = $self->getQuery();

 定数

Perlには定数という概念がありません。 なので、定数モジュールを使って定数を作ってみましょう。 use constant これがモジュールの名前。定数を宣言するのは、 use constant RUFFY => '麦わらのルフィ'; はい、これで完成。

オーバーライド

前回子モジュールを作りました。 そして、親モジュールの内容を書き換えようとしたわけですが。どうやって書き換えるかというと、 親と同じメソッド(サブルーチン)を子にも書いてやればよかったわけです。でも。 なんかピンときませんよね。 親のサブルーチ…

継承

[Perl]継承例えば、モジュールを使ってメールフォームを作りたいとします。 その時、モジュールの中身はほとんど同じなんだけど、 ちょこちょこ違うからそこだけ親のモジュールの処理を書き換えたい場合があると思います。そんなときにこの「継承」を使いま…

 メソッド変更

「オブジェクト指向」ってまだわかりません。とにかく、今やってることがオブジェクト指向に 近い事のようなので、あまり気にせずやっていこうと思います。モジュールの使い方はわかりました。で、それぞれのメソッド(サブルーチン)だけを取り出して、 使…

オブジェクト指向

いよいよオブジェクト指向に入ろうと思います。 ずっと「動けばいいじゃん」ってさけてきたんですが、いよいよ。。。早速、一番わからないオブジェクト指向に使う言葉をいくつか調べてみましょう。「Perlにおけるオブジェクト指向用語」 属性 オブジェクトを…