Perl

細かすぎて伝わらないPerlと$0変数 - コマンド名偽装

先日、moznion氏の「実行中のプログラムの進捗度を手っ取り早く確認したい」という面白い記事を読みました。これに影響されて、Perlと$0のウンチクを id:lesamoureuses に語ったところ地味にウケが良かったので、さらに調子に乗って、細かすぎて伝わらないPe…

Perlモジュールでプライベートメソッドを作る

Perlのオブジェクト指向はかなり後付けでムリヤリ感があるんだけど、privateメソッドをモジュールに作りたいなと思った場合にどうするか。というのを調べてみた。 概要 以下、ある秘密値を取得するメソッドを隠蔽したいケースを考える。実はこのメソッドは、…

PerlでHTTPレスポンスヘッダを取得

まだLWP::UserAgentをいじっているのだが、レスポンスヘッダ周りの操作でちょっと迷ってしまった。 レスポンスヘッダを文字列として取得する これは、HTTP::Requestのheaders_as_stringメソッドを使えば良い。 #!/usr/bin/perl use strict; use warnings; us…

LWP::UserAgentで、文字列をそのままPOST

何がしたいかと言うと。普通はこんな感じで、POSTでパラメタを引き渡すのだけど。 #!/usr/bin/perl use strict; use LWP::UserAgent; my $ua = LWP::UserAgent->new; my %param = ( "id" => "ozuma", "type" => "12", ); my $res = $ua->post("http://localh…

LWP::UserAgentでリダイレクトを追わない

PerlのLWP::UserAgentでリクエストを投げていると、リダイレクトを自動で追ってくれるので、例えば [302 Moved Temporarily] はLocationヘッダで指定されたURLを取ってきてくれて透過的に扱うことができる。しかしこれが余計なお世話ということであれば、req…

IPアドレスの自動計算コマンド iptabとipcount

IPアドレスとネットマスクをいちいち手で計算しなくとも、自動でサッと出してくれるのがあった。忘れていたのでメモ。 iptabコマンド iptabは、各ネットマスクごとのIPアドレス数、マスク表記をずらりと表示してくれる。 $ iptab +-------------------------…

TwitterのWebアプリをPerlのCGIで

TwitterでOAuthログインしてほげほげやって作るTwitterのWebアプリを、PerlのCGIで昔ながらな感じで作っている人はかなり少ないようだ。でもおじさんはRubyとかPHPとか嫌いなので、今さらPerlから離れたくない。ということで、Perlで書く人に参考になるかな…

PerlでTwitterアプリ開発の導入メモ - Net::Twitter

(※)最初に注意書き この記事の記述は、Twitterのボットアプリ、つまりDesktop appの例で書いています。TwitterのWebアプリを作る場合はcallbackの実装などが必要のため別にまとめました、こちらをご参照ください。 http://homepage1.nifty.com/y-osumi/wor…

ImageMagickで錆びた感じに加工する

ImageMagickを使ったネタ。ちょっと錆びた感じのロゴを作ってみようと思う。この元ファイルを、 以下のような感じにしてみようということ。ちょっと錆びたように見える(よね?)。 convertコマンドで やり方のアイディアとしては、convertコマンドのresize…

データベースから投稿データを拾ってXML::RSSでRSS 1.0を生成

ユーザが投稿した内容を保存しているデータベースからデータを拾い上げて、RSSを作ることにするか…… (´∀`)定番のPerlのXML::RSSを使って、MySQLのデータベースに入っているとする。こんな流れになるかな。サンプルソースコードをまとめたものは、この記事の…

YAMLでCGIの設定ファイルを書く

Webアプリを構成するCGIのソース内に、データベースへの接続設定などを直接埋め込んでおくのは良くない書き方だ。そのため、プログラムから設定を取得するための共通のコンフィグファイルを作ろうと思う。この設定ファイルを書く形式にはJSONとかXMLとかいろ…

日本語と英語のページをCGI内で判別して出し分け

Webブラウザの言語設定を取得して、日本語ならば日本語ページ、それ以外ならば英語ページを表示するようにする。ApacheならMultiviewsを使う案もあるけど、CGIの中で判断して出し分ける方法を取ろう。 環境変数HTTP_ACCEPT_LANGUAGEには、カンマ区切りで以下…