この記事は aPerl でコードを書く時に知っておきたかったこと に移行しました
この記事は aPerl でコードを書く時に知っておきたかったこと に移行しました
cpanminusはCPAN::shellに変わるPerlのライブラリ管理システム。 cpanminusはPerl製のオープンソース・ソフトウェア。MOONGIFTではスクリプト言語の中では圧倒的にPerl製のソフトウェアを紹介することが少なかった。要因の一つにとにかくCPANを使ったインストールが面倒くさいというのがあった。 どんどんインストールされていく 起動しようとしてエラー、CPANでインストールして再実行、またエラー…そして最後の最後でCPANモジュールが依存できない。そんなことを繰り返しているとストレスで自然と避けてしまうというものだ。だが今後は違う、cpanminusを使えば良いのだ。 cpanminusはCPAN::shellに変わるCPANライブラリ管理システムだ。CPAN::shellの欠点として、依存するモジュールがある時に都度y(とは限らないが)で答えないといけない
最近会社でapacheのアクセスログ解析というのをperlを使って行っています。例えばこんな感じのログがテキストファイルに保存されています。 ... 2010-09-20 21:30:12 A.B.C.D http://example.com/hoge.html ... 2010-09-20 21:30:13 W.X.Y.Z http://example.com/foo/bar.html ... ...このログファイルのサイズがだいたい1GBくらいあります。レコード数は500万行くらいだったかな(ちょっとあいまい)。このログ全部を解析すると時間もかかるし、必要な部分が見づらくなります。なので、特定の時間帯だけを解析するようにしています。 僕は時間帯を判定するのに、ログから取り出した時間を文字列のまま比較するという実装をしていました。 文字列のまま時間を比較(
Perl5 によるメール送信 - 実践的な Email::Sender の利用方法 Perl5 では、E-mail の送信をするためのモジュールが多数 CPAN にアップロードされているが、現在もっともまじめにメンテされていて質がよいのは Email::Sender らしい。 Email::Sender は登場当初はドキュメントもなさすぎるしつかいものにならなかったが、現在ではだいぶマシになっている。Moose 依存が気にならないケースでは、実用としてつかっても問題ないとおもう。 iso-2022-jp の日本語のメールを送るには、以下のようにすればよい。 use 5.12.1; use utf8; use Email::Sender::ail); use Email::Email::
正規表現とは、ある特定の文字列ではなく、文字列の一部をパターン化して表現する手法をいいます。 複数行ある文章の中から文字列を検索する時に、検索したい文字列すべてを指定するのではなく、文字列の任意の一部を置き換え可能な状態にして検索をする場合に正規表現を用います。 たとえば、UNIXやWindowsでは、文字列を検索するときに使用される正規表現として、「*」を任意の文字列(空き文字も含む)に、「?」を任意の1文字として使用することができます。パターンを、app* と表現すると、 apple application appeal などの文字列がマッチすることになります。 この正規表現の方法は、当然ながらプログラム言語ごとに異なりますが、Perlの場合は他の言語に比べて非常に強力な正規表現によるパターンマッチ機能を備えており、より詳細にかつ容易にパターンマッチを行うことができるとされています。
Mixiに簡単にアクセスするためのLWP::UserAgentライクなモジュール。 更新情報、不具合情報などはmixiのWWW::Mixiコミュニティにも挙げていきます。 WWW::Mixiコミュニティ WWW::MixiモジュールはCPANにも登録済みです。 Mixiに特化したLWP::RobotUAモジュールのサブクラスです。 WWW::MixiはふつうのLWP::UserAgentのように使うことができます。 例えば、次のような手順でCookieを有効にし、ログインし、トップページ(home.pl)を取得することができます。 この書き方であれば、use WWW::Mixiの代わりにuse LWP::UserAgentとかuse LWP::RobotUAとして、WWW::Mixi->newの行を適当に書き換えてやると、それでもトップページの取得ができます。 use WWW::Mixi;
Perl で CGI を開発するうえで役に立つ Perl モジュールはいくつもありますが、 その中でも有名なモジュールと言えば CGI.pm でしょう。 かつては Perl5 に標準モジュールとして組み込まれていた定番モジュールです。 しかし、Perl による CGI 開発が少なくなってきたという動向も影響したせいか、 最新の Perl5 では標準モジュールから外されてしまいました。 しかし、いまなお、多くのレンタルサーバーで利用することができます。 本記事では、CGI.pm の基本的な使い方を解説します。 また、もし最新の Perl5 の環境で CGI.pm がインストールされていないレンタルサーバーでも、 CGI.pm を組み込む方法についても解説します。 目次 CGI.pm のバージョンアップに伴う変化 前述の通り、かつて CGI.pm は Perl5 の標準モジュールでした。 その
自分用メモです。 いろいろなサイトを参考にしましたが、完全なコードが見つからなかったのでとりあえずリンクは省略します。 TwitterのOAuthClientを下記URLから設定 http://twitter.com/oauth_clients consumer_keyとconsumer_sehtml からリンクで sample.pl にアクセスし、TwitterのOAuth許可用のページへリダイレクト。 OAuth許可用のページで許否を設定後、sample.pl で設定した callback_url (ここ重要)へリダイレクトされる(この場合はcallback.pl)。 callback.pl で oauth_token と oauth_verifier を取得し、updateを試みる。 成功であれば、ツイート先へ、失敗であればTwitt
Xslateが5.8.1でも動くようになりました。 また、makamakaさんの努力により、pure Perl版が高速になりました。Templateを少し上回るスコアを出しています*1。 benchmark/others.pl $ XSLATE=pp perl -Mblib benchmark/others.pl Perl/5.10.1 i686-linux Template/0.11 Template/2.22 Rate tt mt xslate cs tt 325/s -- -63% -67% -86% mt 881/s 171% -- -10% -63% xslate 975/s 200% 11% -- -59% cs 2349/s 622% 16
「YouTube.comいわくPythonは速い」とかいうもんだからついガッとなって、いろんな言語でフィボナッチ計算をさせて時間を計ってみた。 Intel Core2 6600 @ 2.40GHz, 2.00 GB RAM, Windows, Cygwin Python def fib(n): if n < 2: return n else: return fib(n-1) + fib(n-2) print fib(30) $ time python fib.py 832040 real 0m0.801s user 0m0.811s sys 0m0.015s $ python --version Python 2.5.1 Ruby def fib(n) if n < 2 n else fib(n-1) + fib(n-2) end end print fib(30) $ time ruby
必要なもの lighttpd + fcgi + libpcre 全てrootにて作業。 fcgi http://www.fastcgi.com/dist/から取得してインストール wget http://www.fastcgi.com/dist/fcgi-2.4.0.tar.gz tar zxvf fcgi-2.4.0.tar.gz cd fcgi-2.4.0 ./configure make make install libpcre ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/から取得してインストール wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-7.6.tar.gz tar zxvf pcre-7.6.tar.gz cd pcre-7.6 .
という感じになりました。 やっぱり、プロセスを常駐させた方が大分早いようです。 CGIでのCとPerlの実行速度差に比べ、PerlのFastCGIがCのFastCGIと比べて遜色ないのは、Perlはプロセス起動時に中間コードにコンパイルされるらしいのですが、FastCGIだとその中間コードがプロセスが落ちないため保持されるので、リクエスト毎のコンパイル時間が不要になるためらしいです。 FastCGI職人からの聞きかじりですが...。 C-CGIとPerl-FastCGIの間の比較は、所詮環境変数表示だけのプログラムですので、複雑なプログラムになると実ロジック部分のCとPerlの実行速度差でどうなるかは判りませんが、今回は環境変数表示だけのプログラムでの結果なので、プロセスは小さいんじゃないかと思います。 なので、プロセスが小さければCGIでも...というのは、?がつきました。 (と
サキとは彼女の自宅近く、湘南台駅前のスーパーマーケットで待ち合わせをした。彼女は自転車で後から追いつくと言い、僕は大きなコインパーキングへ車を停めた。煙草を一本吸ってからスーパーマーケットへ向かうと、ひっきりなしに主婦的な女性かおばあちゃんが入り口を出たり入ったりしていた。時刻は午後5時になる。時計から目を上げると、待たせちゃったわねと大して悪びれてない様子でサキが手ぶらでやってきた。 お礼に料理を作るとはいえ、サキの家には食材が十分足りていないらしく、こうしてスーパーマーケットに寄ることになった。サキは野菜コーナーから精肉コーナーまで、まるで優秀なカーナビに導かれるように無駄なく点検していった。欲しい食材があると、2秒間程度それらを凝視し、一度手に取ったじゃがいもやら豚肉やらを迷うことなく僕が持っているカゴに放り込んだ。最後にアルコール飲料が冷やされている棚の前へ行くと、私が飲むからとチ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く