アキラのITメモ:Perl
Net::Amazonの使用
Net-Amazon-0.38をダウンロード、設置、使用してみたときのメモです。説明書に書かれていることと若干違う部分があって結構はまりました。こういうのは結局ソースを読むのが一番早いのかな。
誕生日からの経過日数を取得
誕生日からの経過日数を取得するスクリプトをかけないかなあと思って書いてみました。といってもかなり簡易なものです。入力チェックもしてないですし、エポック秒で計算しているので1970年以前だとうまく動かないかもしれません。スクリプトはこんな感じです。なお、CGIで動かすことを想定して書いていますが、$bday、$bmonth、$byearを手入力で与えても動くと思います。時間があればもっときちんとしたものを作りたいのですがとりあえずはこんなもので。
入力行に時刻を付け出して吐き出すフィルタ
vmstatを打ちっぱなしにしておきたいものの、vmstatの出力には時刻が含まれておらず、さてどうやってつけようと調べていたところ、入力行に時刻を付けて吐き出すフィルタを見つけました(その1、その2、その3)。ちなみに、vmstat はプロセス・メモリ・ページング・ブロック IO・トラップ・CPU 稼働状況などに関する情報を報告してくれるコマンドです。
MIME::Parserの使用例
前のエントリでmaildropを使った受信メールをスクリプトに渡すところまで書いたのですが、ここではメールを整形、他のアドレスに転送するスクリプトを公開してみます。といってもPerl初心者の書いたものですので信用しないでください。
Perlでhttpを使う
Perlで簡単にhttp経由でデータを取って来たいことがあるのですが、そういう時に使えるのが軽量なHTTP実装モジュールであるHTTP::Liteです。LWPより高速だそうです。日本語ドキュメントはこの辺りにあります。使い方は以下の通り。
インストールされていないPerlモジュールを使う
Perlを使ったスクリプトをcron経由で走らせようとしたときに、うまくモジュールが読み込めなくてはまりました。以下は、サーバにインストールされていないPerlモジュールを使う方法です。
Basic認証とPerlによるhtpasswdの作り方
いつもどうやって書くんだっけと調べているので、Basic認証による認証方法を簡単にメモ書きとして残しておくことにします。Basic認証とは、所望のディレクトリにアクセス制限をかけるためのものです。よく、小さなウインドウが出てきてユーザ名とパスワードを求められ、間違えると「401 Authorization Required」と出るのがそれです。
メールを送る簡単なCGIプログラム
メール送信を行うことがよくあるのですが、CGIによる簡単なメール送信方法の例を書きます。といってもsendmailを叩いているだけなのでたいしたことではないですが。本当は入力文字のチェックだとか行わないといけないのでもう少し複雑なコードを書く必要があるでしょう。
サニタイジングをする
CGIを作成する時などにクロスサイトスクリプティング(XSS)対策のために必ず必要になるサニタイジングですが、いつもどうやるんだっけ?と忘れてしまいがちなのでここにメモしておくことにします。基本的には以下のような感じでOKです。このあたりの話はIPA セキュアWebプログラミングのページが役に立ちます。
所望の日時のエポック秒を取得する
Perlで所望の日時のエポック秒(ある日時の1970年1月1日午前0時0分0秒からの経過秒数)を取得したいけどどうやるのだろうと思っていたのですが、Time::Localモジュールにあるtimegsやtimelocalといったgmtimeやlocaltimeの逆関数を使えば取得できるようです。
複数のRSSをまとめるCGIスクリプト
本サイトはいくつかのブログから構成されているため、複数のブログのRSSをまとめて、さらに時系列順に並べてくれるCGIが欲しかったのですが、先のエントリで設置したjsRSS++では一つのRSSを読み込んでその内容を表示することしかできませんでした。そこで、複数のRSSを読み込むタイプのCGIがないか探していたのですが、扱いやすそうなものが見当たりませんでした。それなら、RSSを結合するCGIがないのかなと思い調べたのですが、これまたあまり良いのが見つからず、結局、自分で書くことにしました。
メールアドレスを抜き出す
簡易に文章中からメールアドレスを抜き出す方法のメモ書きです。以下にPerlによる実現方法を示します。ここを参考にしました。ただし、この方法だと、1行にいくつもメールアドレスがある場合にうまく集計できないと思いますので、本当はもっときっちりと書いたほうが良いです。また、メールアドレスの正規表現もきっちりと書いていないです。
PerlでFTPを使う
PerlでFTPを使うためのメモです。ナンデモトラックバックセンターの過去ログが大きくなってここの容量を圧迫するのではなかろうかという杞憂があって、過去ログをFTP転送させようと画策したときに調べたメモ書きです。
IPアドレスをcrypt関数で暗号化する
Perlでcrypt関数を使っていろいろやっていたのでそのメモ書きです。CGIでIPアドレスに何らかの暗号化したい場合は例えば以下のようにしたらできます。もっとエレガントな書き方があるように思いますが。
サイト内検索
カテゴリ
- Linux
- Linux Tips [14]
- Linux ソフトウェア [3]
- Web技術
- (X)HTML/CSS [4]
- JavaScript [1]
- MovableType [7]
- その他 [3]
- 各種API [3]
- 各種ツール [4]
- Windows
- Win Tips [3]
- Win ソフトウェア [6]
- コネタ [7]
- プログラミング
- 機器 [4]