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のアクセスログやエラーログなどは、アクセスがある限り半永久的にデータがファイルに追記(記録)されていく。このような成長し続けるファイルを常に読み込み、表示し続けるにはどうすれば良いだろうか? 原理は簡単だ…
「Perl大技林」一覧に戻る 実行しているCGIに致命的なエラーが発生した際に通常は「500 Internal Server Error」となり異常終了するところを、エラーメッセージなどを表示したい。CGI::Carpモジュールを利用すれば良い。 使い方は非常にシンプルで、CGI::Car…
「Perl大技林」一覧に戻る MD5などよりも安全性の高いと言われるSHA1の値を取得したい。Digest::SHA1モジュールを用いればあっという間に実現できる。 Digest::SHA1モジュールには三種類の関数(メソッド)が用意されており、用途によって使い分けることができ…
「Perl大技林」一覧に戻る タグクラウド(TagCloud)を生成したいが、かんたんに行えるモジュールはないだろうか?そんな時はHTML::TagCloudモジュールを利用すれば良い。 タグクラウドとは特定のキーワードに重み付けをし、重要な物は大きく表示しそうでない…
「Perl大技林」一覧に戻る CPANからLinuxなどのUNIXクローンOSに、最新版のモジュールをインストールしたい。Perlに搭載されている機能を用いれば、非常にかんたんに実行できる。
「Perl大技林」一覧に戻る 真っ白なキャンバスに点や線を描く、または文字を書く場合、まずは元となる画像が必要になる。あらかじめ画像を用意しても良いが、ImageMagickでは動的にキャンバスを生成することができる。 インスタンス生成後、Set, Readで各種…
「Perl大技林」一覧に戻る 「文字」を文字コードへ変換するにはord関数を用いれば良いが、「文字列」の場合はどうすれば良いのだろうか?ord関数の使い方を工夫してやれば良い。 単純に1byteずつ置換してやれば良い。この置換時にord関数を用いることになる。
「Perl大技林」一覧に戻る 通常、ハッシュに入れた値をkeysなどを使って取り出すと、配列のように追加した順番通りに並ぶことはまずないといってもよいし、期待してはならない。この問題を解決するには、つまりハッシュに順番を保持させる簡単な方法は「Tie:…
「Perl大技林」一覧に戻る ハッシュに大量のデータを挿入する際、プログラムの動作を出来る限り早く(高速に)、処理を軽くしたい。実は一行付け足すだけで、かなり違ってくる技がある。 keysは本来ハッシュのキーを取り出す際に利用するのだが、これから登録…
「Perl大技林」一覧に戻る 配列内の同じ値を取り除きたい。ハッシュを利用すればかんたんに実現できる。
「Perl大技林」一覧に戻る ハッシュの内容を全て出力するには、いくつかの方法がある。 代表的な3つの方法 まずはもっともシンプルな方法。だが、もっとも使用しないだろう方法。ハッシュのキーと値がずらずら~とただ表示される print %ENV; 次に代表的な3…
「Perl大技林」一覧に戻る ハッシュに指定したキーが存在するかどうか調べたい。exists関数を用いれば良い。 exists関数は、指定したキーが存在すれば真(true)を、存在しなければ偽(false)を返す。
「Perl大技林」一覧に戻る ハッシュのキーで並べ替えて表示するには、sort関数でkeysの値を並べ替えればよい。 以下はハッシュのキーを文字列としてソートする方法になる。