CGI・Perl例文集

閏年か判定する - Perl

「Perl大技林」一覧に戻る 約4年に一度、2月29日が発生する閏年(うるうどし)かどうかを判定するには、次のロジックを素直に実装すれば良い。 4で割り切れる年は閏年 ただし、100で割り切れる年は閏年ではない しかし、400で割り切れる年は閏年である isLeap…

十二支の干支を求める - Perl

「Perl大技林」一覧に戻る 指定した年(西暦年)が、干支(子・丑・寅・卯・辰・巳・午・未・申・酉・戌・亥)で何年かをプログラムで計算し求めたい。 ロジックは非常にシンプルである。 西暦を12で剰余算すると0の時に申(サル)が来る。ということで、申・酉・…

旧暦(太陰太陽暦)の月名を取得する - Perl

「Perl大技林」一覧に戻る 1月を日本では睦月(むつき)とも呼ぶ。このような旧暦の名称を取得するにはどうすれば良いだろう? 睦月から順番に配列に入れ、localtimeの4番目の戻り値をそのまま添え字として使用するだけで良い。忘れがちだが、localtimeが返…

画像の種類を判定する - Perl,ImageMagick

「Perl大技林」一覧に戻る GIFなのかJPEGかなど、画像がどのような保存形式か判定したい。基本的に拡張子はあてにならない場合があるため、実際にファイルの内容を解析した方がよい(しなければならない)状況などに役立つ。

基数変換を行う - Perl

「Perl大技林」一覧に戻る 2進数を10進数、10進数を16進数など、基数変換には「Math::BaseCalc」モジュールを使用すると楽に行える。Math::BaseCalcモジュールは別途インストールが必要な場合があるので注意。

巨大なBinary logが生成されディスクフルになった場合 - MySQL4.x

MySQLはデータを更新する際に、バイナリログにその記録を残す。 リストアなどをする際に用いることが可能だが、大量のINSERTやUPDATEが飛び交っていると、知らないうちに数Gバイトものファイルになっていることがある。 そのため定期的にディスクから削除な…

半角英字のみかチェックする - Perl

「Perl大技林」一覧に戻る 何らかの事情により、半角の英語つまりアルファベット(a~z、A~Z)のみかをチェックしたい場合、どのようにしたら良いだろうか?これも正規表現で解決できる。

半角数字のみかチェックする - Perl

「Perl大技林」一覧に戻る 例えば郵便番号や電話番号などのチェックに、半角数字のみかをチェックをしたい。このような場合には、正規表現を用いると良い。

半角英数字のみかチェックする - Perl

「Perl大技林」一覧に戻る 入力内容が半角英数字のみかチェックしたい。これも正規表現で簡単に実現できる。「半角数字のみのチェック」「半角英字のみのチェック」の合わせ技だ。

メールアドレスの書式かチェックする - Perl

「Perl大技林」一覧に戻る メールアドレスがきちんと入力されているかチェックを行いたい。半角英数字と一部の記号を用い、「ユーザー名@ドメイン名」といった形になっているか確認する。

7桁の郵便番号の書式かチェックする - Perl

「Perl大技林」一覧に戻る 7桁の郵便番号かどうかチェックしたい。 具体的には「123-4567」または「1234567」といった書式かどうかをチェックする。

半角カナが含まれているかチェックする - Perl

「Perl大技林」一覧に戻る 半角カナが入力されると非常にまずい場合がある。 半角カナが文字列の中に含まれるかどうかをチェックする

半角数字を全角数字へ変換する - Perl,Jcode

「Perl大技林」一覧に戻る Jcodeモジュールを用いれば、半角数字を全角数字へ1発で変換できる。

全角数字を半角数字へ変換する - Perl,Jcode

「Perl大技林」一覧に戻る 全角数字を半角数字へ変換するにはJcodeモジュールで変換してやれば良い。

全角カナを半角カナへ変換する - Perl,Jcode

「Perl大技林」一覧に戻る 携帯向けのページなどでは、全角カナの部分を半角カナへ変換する必要が出てくる(mustではないが)。このような場合にも、Jcodeモジュールを使用すれば良い。Jcodeモジュールが機能を用意してくれている。

半角カナを全角カナへ変換する - Perl,Jcode

「Perl大技林」一覧に戻る 半角カナが含まれていたらエラーを出すのはちょっと不親切だ。半角カナを自動的に全角カナへ変換したい。半角カナを全角カナへ変換する機能は、Jcodeモジュールが用意してくれている。

ファイルをダウンロードさせる - Perl,CGI

「Perl大技林」一覧に戻る テキストファイルや画像などを表示させるのではなく、ダウンロードをさせたい。 IEやFireFoxなどのブラウザでは、圧縮ファイル(zip, lha)などはファイルを保存するダイアログを自動的に出してくれるが、CSVなどのテキストファイル…

ファイル名や拡張子を取得する(File::Basename) - Perl

「Perl大技林」一覧に戻る 次のようなファイルパスから、ファイル名や拡張子を取り出したいが、どのようにすれば良いだろうか? $file_unix = q|/home/hoge/image.jpg|; $file_win = q|\home\hoge\image.jpg|; $file_mac = q|::home:hoge:image.jpg|; File::…

Cookieに値をセットする - Perl,CGI

「Perl大技林」一覧に戻る Cookieに書き込む方法は、CGIなどでHTTPヘッダに埋め込むか、HTMLのMETAタグ、JavaScriptなどで指定する方法がある。ここではCGI(Perl)でよく使用されているCGI::Cookieと呼ばれるモジュールを使用する。 ※掲示板などに書き込んだ…

Cookieの値を取得する(CGI::Cookie) - Perl,CGI

「Perl大技林」一覧に戻る すでに書き込まれた(セットされた)Cookieを取得するにはどうすれば良いだろうか?この機能もCGI::Cookieモジュールが簡単な方法を用意してくれている。

Cookieを削除する(CGI::Cookie) - Perl,CGI

「Perl大技林」一覧に戻る Cookieを削除するには、単純に有効期限を現在よりも過去に設定してやれば良い。

配列をシャッフルしたい(ランダムな順列) - Perl

「Perl大技林」一覧に戻る 配列(リスト)を順不同に並べ替えたい。 トランプで言う「シャッフル」、アルゴリズム的な用語を使うと「ランダムな順列」に該当する。 次のようなプログラムを記述すれば良い。

日付の四則演算を行う(Date::Simple) - Perl

「Perl大技林」一覧に戻る ある日から15日先(または前)の日付を計算するなどしたいが、どうすれば良いだろうか? time値が分かっていれば簡単に求めることが出来るが、それが全く分からない。 今回はDate::Simpleを使った解法を示すことにする。以下のプログ…

明日や昨日の日付を計算する(time関数) - Perl

「Perl大技林」一覧に戻る 明日、また昨日の日付を計算したい。 timeの戻り値が分かっている場合は非常にシンプルに求めることが出来る。

明日や昨日の日付を計算する(Date::Simple) - Perl

「Perl大技林」一覧に戻る 明日、また昨日の日付を計算したい。 Date::Simpleモジュールを使用すると、非常に簡潔に記述することができる。以下のプログラムの実行には、Date::Simpleモジュールのインストールが必要となっている。

指定日の曜日を求める(Date::Simple) - Perl

「Perl大技林」一覧に戻る ある日付が何曜日が調べたいがどうすれば良いだろうか? Date::Simpleモジュールの機能を利用し、簡単に調べることが出来る。 以下のプログラムの実行には、Date::Simpleモジュールのインストールが必要となっている。

YouTubeのurlが入力されたら再生画面を表示する - Perl

「Perl大技林」一覧に戻る YouTubeにはobject要素(タグ)を貼り付けると、ブログやWebサイトなどから直接ビデオを再生できる機能が用意されている。例えば掲示板(BBS)などで、YouTubeのURLが入力されたら、上記のような再生モードに置換したいが、どのような…

ディレクトリを再帰的にたどりファイル一覧を取得したい その1 - Perl

「Perl大技林」一覧に戻る Perlでの実装方法について解説する。

ディレクトリを再帰的にたどりファイル一覧を取得する その2 File::Find - Perl

「Perl大技林」一覧に戻る 今回は、PerlのFile::Findモジュールを利用した方法を解説する。File::FindモジュールはPerlに標準で入っているため、通常はインストールの作業などはいらない。

mod_perlについて知りたい - Perl

「Perl大技林」一覧に戻る CGIやPerl系の書籍と比べると、残念ながらmod_perl 解説本はあまり多くなく、選択肢は限られている。 ※そしてどれも安いとは言えない(;´∀`)