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などのテキストファイル…

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 解説本はあまり多くなく、選択肢は限られている。 ※そしてどれも安いとは言えない(;´∀`)

数字を三桁ずつカンマで区切る - Perl

「Perl大技林」一覧に戻る 価格の表示など、3桁毎に数字を区切りたいことがある。このような場合、どういった処理を書けば良いのだろうか? 次のような commify 関数を自分のライブラリに準備しておくとかなり重宝する。

指定バイト数で自動的に改行する - Perl

「Perl大技林」一覧に戻る 日本語を含む文字列がある。 この文字列が改行されておらず非常に長文であるため、指定したバイト数で自動的にBR要素などを用いて改行を行いたい。 このような場合には、Jcode.pm内のメソッド「jfold」を用いると簡単に実現できる…

重複しないユニークなidを生成する - Perl

「Perl大技林」一覧に戻る ユーザーを識別するため、ファイルをサーバに保存するなど何らかの理由により重複しないIDを生成したい場合にはどうすれば良いだろうか? 通常のCGIであれば、CGI::Sessionなどを用いる方法もあるが、次のようなコードを書くことで…

特定の項目でソートする - Perl

「Perl大技林」一覧に戻る 以下のような配列がある時、2番目の項目で並べ替えがしたい。 単純に sort @array しただけではできない。 @array = ( '1,b,c' , '3,c,b' , '2,a,a' ); ソート項目が数値の時にはorderByArrayNum、文字列の時にはorderByArrayStrを…

1回のファイルオープンで読み書きを同時にする - Perl

「Perl大技林」一覧に戻る open関数でファイルを開き、読み書きを同時に行いたい場合はどうすれば良いだろうか?これを解決するには単純にファイルの読み書きモードを使用すれば良い。

文字列中のURLを自動的にリンクさせる - Perl,CGI

「Perl大技林」一覧に戻る 掲示板などのプログラムで、文字列中にURLが含まれる場合、自動的にハイパーリンクが張られている場合がある。これを実装するにはどうすれば良いだろうか? 単純にURL(URI)の正規表現を用いて、置換を行えば良い。以下のサンプルで…

数値の値でソートする - Perl

「Perl大技林」一覧に戻る 以下のようなコードを書くと、文字列として扱われてしまい、意図した結果にならない場合がある。 @array = ( 1, 2, 3, 4, 5, 10, 11, 12 ); foreach(sort @array){ print ; print "\n" }

二次元ハッシュを作成する - Perl

「Perl大技林」一覧に戻る $a{'a'}->{'A1'} = 1 のような形のハッシュを作成、表示する。

リストからある条件と一致した値を取出す - Perl

「Perl大技林」一覧に戻る ※初出の日時が不明のため公開日は仮の日付です あるリストから、希望する条件に一致した値だけを取り出したい場合がある。for,while,foreachなどのループを使う方法以外に、効率の良いやり方が知りたい。

インチ⇔ピクセル変換 - Perl

「Perl大技林」一覧に戻る 前提知識 1インチは何センチ? 1インチ=2.54cm dpiとは? 『Dot Per Inch (dot/inch)』 の略称で、1インチに何ドット集まっているかという単位。72dpiなら、1インチ(2.54cm)に72個のドットが集まっていることになる。 ピクセルをc…