CGI・Perl例文集
「Perl大技林」一覧に戻る 小数点以下の数値が出た際に、切り上げ処理を行いたい。 Perlでは切り捨てはint $float といった形で行えるが、切り上げ用の関数が用意されていない(っぽい)。 POSIXモジュールを使用するか、次のような関数を用意しておくと重宝す…
ここではソースからコンパイルしバージョンアップする方法を簡単に解説する。基本的には再コンパイルするだけ。『やり直し』を行う場合もこの手順を参考にすれば良い。 手順としては大まかに以下のようになる。ようはコンパイル後に生成された実行ファイルで…
「Perl大技林」一覧に戻る Twitterの公式APIを利用し、Perlから友達(friends)の情報を取得することが可能だ。Net::Twitterモジュールを使用すれば良い。 流れとしてはインスタンスを生成と同時にログインし、friendsメソッドを叩くだけと非常にシンプルだ。
「Perl大技林」一覧に戻る Twitterの公式APIを利用して、Perlから友達のステータスを過去分などまとめて取得することが可能だ。Net::Twitterモジュールを用いる。 過去24時間以内に更新された自分の友達(friends)のステータス(発言)を、最大20件まで取得する…
「Perl大技林」一覧に戻る Twitterの公式APIを利用して、Perlからステータスを更新することが可能だ。Net::Twitterモジュールを使えばいとも簡単に実現できる。 Net::Twitterモジュールはもちろん標準では入らないので別途インストールする。同時に「LWP::Us…
セキュリティ対策用の記事です。仕組みを解説するためのコードであって幇助しているわけではありません。実際に悪用しないでください ネット上での不正なハッキング(クラッキング)手段の一つ、イベイシブ攻撃が具体的にどのようなコードになるのか解説する。…
「Perl大技林」一覧に戻る 配列Aに入っている全ての値を、ハッシュHのキーにしたい。これは一行で解決する。
「Perl大技林」一覧に戻る 配列に今どれだけの要素が詰まっているかカウントしたい。これには大きく二つの方法が用意されている。 「$#配列名」とする方法と、スカラー値として値を得る方法の二つがある。前者と後者で得られる値が違う点に注意すること。「$…
「Perl大技林」一覧に戻る 配列Aの内容を配列Bにそのままコピーしたいが、どうすれば良いだろうか? 単純に代入をしてやれば良い。 コピー先の配列に値が入っていた場合でもすべて上書きされてしまうので注意すること。もし配列の前か後ろに挿入したいのなら…
「Perl大技林」一覧に戻る 二つの配列を結合(連結)し、合体させたい。 pushとunshiftはリスト(配列)を渡せるのでそれを利用するのが良い。
「Perl大技林」一覧に戻る リスト(配列)内の数値をすべて合算した値を取得したい。 素直に計算する方法と、モジュールを利用する方法がある。List::Utilは5.8以上から標準モジュールとして用意されている(インストールする必要がない)。最近のPerlを使ってい…
「Perl大技林」一覧に戻る とあるリスト(配列)から最小値を取得するにはどうすれば良いだろうか? いろいろな方法が考えられるが、ここでは三種類ほどサンプルをしめす。各関数の処理をそれぞれ見ていただきたい。
「Perl大技林」一覧に戻る とあるリスト(配列)から最大値を取得するにはどうすれば良いだろうか? いろいろな方法が考えられるが、ここでは三種類ほどサンプルをしめす。各関数の処理をそれぞれ見ていただきたい。
「Perl大技林」一覧に戻る 配列の一部だけを簡単に置換してくれる関数がspliceである。 spliceは非常に柔軟であるがために最初はかなりとっつきにくい。その反面、まとめて配列の操作をしたくなった際には心強い味方になってくれる。引数の数によって動作が…
「Perl大技林」一覧に戻る 配列の先頭、または末尾から値を追加するにはpush、unshiftを用いれば良い。 先頭への追加はunshift、最後に追加するのはpushを用いる。
「Perl大技林」一覧に戻る 配列の先頭、または末尾から値を取り出すにはpop, shiftを用いれば良い。 先頭から取り出す時は「shift」、末尾から取り出す時は「pop」を用いる。注意する点としては、取り出した後その値は配列から取り除かれる(削除される)。な…
「Perl大技林」一覧に戻る リスト(配列)を逆に並べ替えるお手軽な方法はreverseを用いることだ。
「Perl大技林」一覧に戻る 配列を初期化するにはいくつかの方法がある。 ここでは代表的な方法を示す。
「Perl大技林」一覧に戻る 例えばApacheのアクセスログやエラーログなどは、アクセスがある限り半永久的にデータがファイルに追記(記録)されていく。このような成長し続けるファイルを常に読み込み、表示し続けるにはどうすれば良いだろうか? 原理は簡単だ…
データベースへ投げられたSQLを実行される度に記録したいが、どうすれば良いだろう? PostgreSQLでは設定ファイル「postgresql.conf」内にある「log_statement」の設定を変更すれば良い。 PostgreSQLでは8.0からログの記録に関する機能が強化されている。log…
「Perl大技林」一覧に戻る 実行しているCGIに致命的なエラーが発生した際に通常は「500 Internal Server Error」となり異常終了するところを、エラーメッセージなどを表示したい。CGI::Carpモジュールを利用すれば良い。 使い方は非常にシンプルで、CGI::Car…
「Perl大技林」一覧に戻る 例えば文字列中にHTMLが含まれる場合、それをHTMLではなくタダの文字として表示したい場合がある。このような時にはHTMLの仕様で定められている文字実体参照などへ変換してやれば良い。 原理は非常にシンプルだ。単純に以下の文字…
「Perl大技林」一覧に戻る MD5などよりも安全性の高いと言われるSHA1の値を取得したい。Digest::SHA1モジュールを用いればあっという間に実現できる。 Digest::SHA1モジュールには三種類の関数(メソッド)が用意されており、用途によって使い分けることができ…
「Perl大技林」一覧に戻る タグクラウド(TagCloud)を生成したいが、かんたんに行えるモジュールはないだろうか?そんな時はHTML::TagCloudモジュールを利用すれば良い。 タグクラウドとは特定のキーワードに重み付けをし、重要な物は大きく表示しそうでない…
MySQL4.0(Linux)でデータベースやログの保存場所を変更したい。 ただし設定ファイルを直接いじるのは怖いのでしたくない。そこでシンボリックリンクを用いた手順を示す。ここではVineLinux3.2上にapt-getでインストールした物を変更するケースとなる。ほかの…
Linuxの設定ファイルの修正をミスって再起動(リブート)をすると立ち上がらなくなる場合がある。 このような場合、どうすれば良いだろうか?解決策の一例を示す。
MySQL4.0(Linux)でデータベースやログの保存場所を変更したい。その手順を示す。 今回はVineLinux3.2上にapt-getでインストールした物を変更するケースとなる。ほかのディストリビーションやソースからコンパイルした場合、バイナリ版では異なる可能性がある…
「Perl大技林」一覧に戻る CPANからLinuxなどのUNIXクローンOSに、最新版のモジュールをインストールしたい。Perlに搭載されている機能を用いれば、非常にかんたんに実行できる。
「Perl大技林」一覧に戻る 真っ白なキャンバスに点や線を描く、または文字を書く場合、まずは元となる画像が必要になる。あらかじめ画像を用意しても良いが、ImageMagickでは動的にキャンバスを生成することができる。 インスタンス生成後、Set, Readで各種…
「Perl大技林」一覧に戻る 「文字」を文字コードへ変換するにはord関数を用いれば良いが、「文字列」の場合はどうすれば良いのだろうか?ord関数の使い方を工夫してやれば良い。 単純に1byteずつ置換してやれば良い。この置換時にord関数を用いることになる。