ミスティーネットPerl・CGI講座 パール・CGIレッスン MISTY-NETレンタルサーバー・PERLプログラミング講座 CGI&PERL究極のレシピ

管理運営:有限会社ミスティーネット

| HOME | ご利用について | 推奨環境 | リンクに関して | 免責/規約 | お問合せ | ミスティーネット | リンク集 |
Perl言語リファレンス

ミスティーネットPerl・CGI講座/基本編
ミスティーネットPerl・CGI講座/基本編
始めに 始めに
変数について 変数について
処理の制御1 処理の制御1
処理の制御2 処理の制御2
配列の処理 配列の処理
ハッシュの処理 ハッシュの処理
数値の扱い 数値の扱い
文字の扱い 文字の扱い
時間の処理 時間の処理
サブルーチン サブルーチン
ファイルの処理 ファイルの処理
ディレクトリの処理 ディレクトリ処理
CGIについて CGIについて
漢字の処理 漢字の処理
    (文字コード)
Cookie の処理 Cookie の処理
正規表現1 正規表現1
正規表現2 正規表現2
演算子について 演算子について
ライブラリ ライブラリ
デバッグ デバック
環境変数について 環境変数
ミスティーネットPerl・CGI講座/基本編

ミスティーネットPerl・CGI講座/応用編
ミスティーネットPerl・CGI講座/応用編
カウンターを作ってみよう カウンターを
     作ってみよう!
ミニゲームを作ってみよう ミニゲームを
     作ってみよう!
ミスティーネットPerl・CGI講座/応用編

  HOME >> Perl 実例集

Perl 実例集

  1. 高速な文字のマッチング処理
■ 高速な文字のマッチング処理
文字列のマッチングを使って分岐処理を行う場合、明らかに特定の文字列の出現率が高い場合には、その文字列をマッチング処理の先頭に持ってくることで処理の高速化を図れます。


[ 例:メールアドレスが携帯のものかPC のものかを判別する処理 ]
if ( $email =~ m/( docomo | [kcrtdhnsq]\.vordafone | ezweb | ido )/gi ) {
    $terminal = "携帯";      ← 携帯固有の文字列を含んでいた場合
} else {
    $terminal = "PC";      ← それ以外の場合
}


[ 解説 ]
変数 $email に赤文字の文字列 「docomo」「(kcrtdhnsq).vordafone」「ezweb」「ido」のいずれかが含まれていれば、端末 $terminal に「"携帯"」を代入する。
それ以外の場合には「"PC"」を代入する。

この際、文字列のマッチングに一番出現率の高いと思われる文字列 「docomo」 をマッチング処理の先頭に持ってくることで、処理の高速化を図っています。
変数 $email に「docomo」が含まれていた場合、パイプ(|)以降のマッチング処理を飛ばして、すぐに 「$terminal = "携帯"」 の処理まで進むため、より効率的に処理が行われます。


    関連ページ → いずれかの単語にマッチ



| HOME | ご利用について | 推奨環境 | リンクに関して | 免責/規約 | お問い合わせ | ミスティーネット |
(C)Copyright 2002 ミスティーネット Inc. All Right Reserved.