This shop will be powered by Are you the store owner? Log in here
This shop will be powered by Are you the store owner? Log in here
Perlが得意でない筆者は、WindowsでPerl = Active Perlという式ができあがっていた。そして、CPANを使おうと思ってエラーが出てしまい、PPMを使うのだが、何かいまいち…という感が否めなかった。 Strawberry Perlの公式サイト。巨大なイチゴが目印。 恐らくWindowsでPerlを使われている方の中には同じ思いをした方がいるはずだ。そこで、Perlの実行環境自体を変えてしまおう。 今回紹介するオープンソース・ソフトウェアはStrawberry Perl、CPANがそのまま使えるPerl実行環境だ。 ActivePerlがnmakeベースであるのに対し、Strawberry Perlはgccを使って環境を構築する。そのため、CPANがそのまま利用できるようになっており、使い勝手がずいぶん良くなっている。 バージョン情報 また、最新版ではPPMやPARもサポ
id:tomi-ru さんが [http://e8y.net/mag/015-encode/:title] というとてもプラクティカルな [http://search.cpan.org/perldoc?Encode:title=Encode] 入門をお書きになったので,わたしも違う切り口で書いてみたくなりました。 いちおうの基礎(読み飛ばし可) 文字セット, キャラクタセット, 文字集合, 文字集合 - Wikipedia エンコーディング, 符号化方式, 文字符号化方式 - Wikipedia この2つは異なります。とくに知らなくても下記の文書を読むことはできますが,理解しているとためになります。くわしく知りたい人は自習してください。 文字セットの例 Unicode JIS X 0208 ひらがなとかカタカナとか漢字とか ASCII 文字 エンコーディングの例 UTF-8 ISO-202
_ [システム運用][Perl] Apache Combined Log を効率的にパースする正規表現メモ ググるとよく見つかるのははてな - Apache形式のログを解析する正規表現を教えてください (Geekなぺーじ : アクセスログの読み方(apache combined logの場合)) の ($host, $ident, $user, $time, $request, $status, $bytes, $referer, $agent) = ($line =~ /^(.*) (.*) (.*) \[(.*)\] "(.*)" (.*) (.*) "(.*)" "(.*)"/); だが、最長一致の .* が多数登場するためか、マッチ処理がとても遅い。たった10万行パースするのに Core2 使って23.7秒ってあり得なくね? できるだけ最短一致でマッチさせるように ($host,
名前¶ Apache::ParseLog - Apache のログファイルを解析するためのオブジェクト指向 Perl 拡張 概要¶ use Apache::ParseLog; $base = new Apache::ParseLog(); $transferlog = $base->getTransferLog(); %dailytransferredbytes = $transferlog->bytebydate(); ... 説明¶ Apache::ParseLog は、オブジェクト指向の構成を利用して Apache のログファイルを 簡単に解析する一つの方法を提供するものである。このモジュールを使って手に入る データは、あなたのアプリケーションに柔軟に利用するのに一般的に十分なものである。 すなわち CGI やシンプルなテキストのみのレポート生成、RDBMS アクセス、 Perl/T
で、そんなことをして何が嬉しいかというと、perl に独自の言語仕様(構文)を加えることができます。ぱっと思いつくものでいえば、Filter::SQL や Switch あたりで使われていたりします。 そもそもなんで今毎 source filter 機能なんて調べているかというと、つい最近、このブログのカテゴリ部分に jQuery の jquery.pager.js を使ってページ分割をしてみました。最近エントリ数が多くなってきて見づらいなぁ〜と思っていたところなんです。 脱線しないように詳しい話はまた別エントリにするとして、MovableType 3.3 の ContextHandlers.pm を一部書き換えないとコレが実現できなかったんですけど、どうせなんでプラグインで配布しようかなぁ〜と考えてしまったわけです。・・・がですね、MT4 系等をサポートしようとすると・・・結構ソースが違
Comprehensive Perl Archive Network Stop reinventing wheels, start building space rockets CPAN Mirror Network For many years, CPAN benefitted from the mirroring of the central respository to many sites around the world. In the time of a slower global Internet, these mirrors provided most Perl users with fast access to thousands of software distributions. These days, the CPAN is backed by a CDN that
YAPCでの発表の際、どんなプレゼンツールをつかおうかなーと考えていたのですが、 自分でつくるのも面倒になってきたので IngyのSporkを試しに使ってみたら、すげー簡単にできたのでご紹介。 まずはともあれSporkのインストール。 cpan> install Spork私の環境ではKwiki::Cacheがないよーとかおこられたので cpan> install Kwiki::Cacheも入れました。 インストールが終わったら、以下のようにするだけです。 $ mkdir presen; cd presen $ spork -new $ vi config.yaml # author_nameとかcopyrightとかPlugin使う場合はそれを設定 $ vi Spork.slides # プレゼン内容を書く $ spork -make # プレゼンHTMLの生成 $ spork -sta
Log::Log4perlでログを取ることにしようかと 2006-11-06-4 [Programming] 下記を読みながらメモ。 - perl.com: Retire your debugger, log smartly with Log::Log4perl! http://www.perl.com/pub/a/2002/09/11/log4perl.html Log::Log4perl には5つの logging levels がある。 (低) DEBUG < INFO < WARN < ERROR < FATAL (高) 例えば、DEBUG を指定すると全レベルのメッセージが出る。 これに関して、":easy" を使った例: #!/usr/bin/perl use strict; use warnings; use Log::Log4perl qw(:easy); test($DE
[Perl] pdflibは動的にPDFファイルを作成してくれるためのライブラリです。 以下はバージョン4の時の使用法 [使用例] ------------------------------------------------------------------------------------------- #!/usr/bin/perl use pdflib_pl 4.0; my $pdf = PDF_new(); #シリアルをセット PDF_set_parameter($pdf, "serial", "シリアル番号"); #新規PDFファイルの作成 die "Couldn't create pdf file" if(PDF_open_file($pdf, "作成されるPDFのファイル名") == -1); #テンプレートファイル読み込み die "Couldn't open te
「Sun Fire V20z を Webサーバ用に購入」や「Apache bench 対決 : Xeon vs Opteron」の記事で書いたように、本業で使っている web サーバは Sun Fire V20z というサーバなんですが、Dell の Xeon サーバとかに比べてベンチマークで比較する数値以上に実務アプリ(Web + DB サーバアプリケーション)の動作がすこぶる機敏です。 ってな訳で、再びサーバ増設で Sun Fire V20z を購入してインストール作業をしているのですが、CPAN のインストールで苦戦中。どうも CPAN サーバによって MD5 - checksums で転けてしまうんです。具体的には、
perl の Error.pm ってまだメジャーじゃないのかな。 Perlにおけるtry catch Perlにおいてエラーなんかをトラップするための方法として、evalがあります。 http://perldoc.perl.org/functions/eval.html で、まず一つ目としてこのevalはあくまで「関数」であって、構文ではありません。具体的にいうならば、 a = 1 / 0; というものに対して、try catchをするのであれば、Javaならばこうすればいいわけです。 try{ a = 1 / 0; }catch(Exception e){ } perl についてくるモジュール Error.pm を使うとこんな感じで書けます。最後に ; が必要なのは一緒で、忘れがちなのも一緒ですがw。 #!/usr/bin/perl use strict; use warnings; u
Blog Search when-present<#else>when-missing. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: ${entry.path} [in template "__entry.ftlh" at line 3, column 25] - Reached through: #include "__entry.ftlh" [in template "entry.ftlh" at
del.icio.us / miyagawa 経由で見つけた CPAN モジュール HTML::TagCloud。Tag Cloud (はてなブックマークの右側に出てくるタグ一覧みたいなやつ) を生成する CPAN モジュールです。 出力はどんな感じかなと思って使ってみました。 #!/usr/local/bin/perl use strict; use HTML::TagCloud; my $tags = [ { tag => 'blog', count => 20}, { tag => 'ajax', count => 10}, { tag => 'mysql', count => 5}, { tag => 'hatena', count => 12}, { tag => 'bookmark', count => 30}, { tag => 'rss', count => 1}, { t
CSVファイルを処理することがあったので、いつもどおりText::CSV_XSを使おうかなぁと思ったんだけど、最近libcsvっていうのを見かけたので試してみることにした。 というわけでPerlから使いたいので、適当にモジュール作った。 http://search.cpan.org/dist/Text-CSV-LibCSV/ 使い方は use Text::CSV::LibCSV; csv_parse($data, sub { my @cols = @_; # なんか処理 }); こんだけ。楽チン。 こんなスクリプトでベンチとってみたところ、Text::CSV_XSの倍以上速い。 そんなわけで、そこそこ使えるんじゃないかと思います。 libcsv入れるのがちょっとめんどくさいけどね。 なんか作者にチラッと10行ぐらいのメールしといたら5倍ぐらいになって帰ってきてる・・・ バグ報告もたっぷり。
テンプレートツールキットマニュアル 職場でTTを使っていた時に少しずつ訳したものです。途中よく分からない所もあって、かなり適当。自動翻訳よりはマシかも、という程度です。 追記・修正歓迎。質問不可。→ しろいわ(public@hakoniwa.net) オリジナルマニュアル http://www.template-toolkit.org/docs/plain/Manual/Directives.html CPAN http://search.cpan.org/~abw/Template-Toolkit-2.14/ 概要 解説 テンプレート変数へのアクセス GET CALL SET DEFAULT 他のテンプレートファイル・ブロックの処理 INSERT INCLUDE PROCESS WRAPPER BLOCK 条件処理 IF / UNLESS / ELSIF / ELSE SWITCH /
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く