ファイルを書き換えるときに、単純に open, write, close だと、そのファイルの性格にもよりますが、問題になるケースがあります。 書き込み処理中に異常終了しちゃった 例えば open my $fh, '>', '/foo/bar'; print $fh gen_header(); print $fh gen_section_1(); print $fh gen_section_2(); # ← die print $fh "# EOF\n"; close $fh な処理で、get_section_2 が異常終了してしまうと、その後書き込まれるはずのものが書き込まれずファイルの内容が中途半端になってしまいます。(まぁでもこのケースはエラー処理をちゃんとやれば回避できますね) 書いている途中で読まれちゃった サーバ名一覧のような定義ファイルや、毎回読まれるタイプの設定ファイルの場
簡単に違いを書くと Imagerはインターフェースがかっけえ Image::Magickはなんか枯れてる 速度はあんまかわんない ファイル読み込み、書き出し、エラー出力 Imager my $img = Imager->new; $img->read(file => $filename) or warn $img->errstr; $img->write(file => $filename) or warn $img->errstr; Image::Magick my $img = Image::Magick->new; $err = $img->Read($filename); $err = $img->Write($filename); $err = $img->Read('-'); # 標準入力から読み込み $err = $img->Write('png:-'); # 標準出力へ書き
This domain may be for sale!
XML::LibXML::parse_html_string で HTML の一部、たとえばブログ記事の本文のみとか、をパースしようとして無駄に苦戦してしまったのでメモ。 以下のような、DOCTYPE 宣言もなければ html/body 要素もないけど、ちゃんと(?)HTMLの一部ではあるものを XML::LibXML でパース、ごにょったあと出力したい。 #!/usr/bin/perl use strict; use warnings; use XML::LibXML; my $html =<<HTML; <div class="entry"> <p>test!!</p> </div> HTML my $parser = XML::LibXML->new; my $doc = $parser->parse_html_string($html); print $doc->toStringH
先日 PerlでCSSセレクタ で HTML::Selector::XPath がいい感じであると思ったわけですが、CSS セレクタだけじゃなく何気に HTML::TreeBuilder::XPath とのコンボがすげーイイ!ということにいまさら気づきました。 HTML::TreeBuilder::XPath で findnodes するとツリー状に連なった HTML::Element なデータ構造が返ってくるんですが、HTML::Element は API をかなりいろいろ持ってて、これをうまく使ってやるとスクレイピングを自然な感じで書けます。 例えばはてなダイアリーの任意のページから、本文部分だけをスクレイピングしたいと思ったときにキーワードリンクが邪魔だったりするわけですが、とりあえず HTML::Selector::XPath で div.section をぶっこ抜いて取れた HT
HTML::Selector::XPath をリリース CSS Selector in Perl とか subtech - Bulknews::Subtech - CSS selector to XPath あたりで議論していた CSS 2 Selectors to XPath コンパイラなモジュールをつくって、CPAN に HTML::Selector::XPath としてリリースしました。 使い方は naoya さんが先に書いてますが、HTML から正規表現を使うことなくスクレイプするのに便利。たとえば Mixi にログインしてマイミク最新日記と、1件目のタイトル、本文を抜き出すコードが、以下のようにかけます。 #!/usr/bin/perl use strict; use warnings; use utf8; use Encode; use HTML::Selector::XPat
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
Perl でのモバイルウェブ開発。CPAN モジュールつかいまくって簡単に開発がすすめられます。 端末情報を制する(HTTP::MobileAttribute) HTTP::MobileAttribute をつかうと、HTTP ヘッダから情報をぬきだし、ケータイ端末の情報をあつかいやすくすることができます。 use HTTP::MobileAttribute plugins => [ qw/ IS / ]; my $ma = HTTP::MobileAttribute->new(); $ma->is_docomo(); 絵文字をふくむ文字列をUTF8にまとめつつ相互変換(Encode::JP::Mobile) Encode::JP::Mobile をつかえば、絵文字の相互変換は容易におこなえます。ユーザがポストした発言などにふくまれる絵文字を、各キャリア用に相互変換することができます。 E
Perl is a programming language suitable for writing simple scripts as well as complex applications — see https://www.perl.org. Strawberry Perl is a perl environment for MS Windows containing all you need to run and develop perl applications. It is designed to be as close as possible to perl environment on UNIX systems. It includes perl binaries, compiler (gcc) + related tools, all the external lib
Perlでの絵文字の相互変換についてまとめたスライド資料「use Encode::JP::Mobile;」 Tweet 2008/5/21 水曜日 matsui Posted in 記事紹介・リンク | No Comments » 昨日に続き、今回も「YAPC::Asia 2008」絡みのスライドをご紹介します。 → YAPC::Asia 2008 use Encode::JP::Mobile; – Perl標準の機能を使った絵文字の相互変換 [yapcasia.org] → slideshare use Encode::JP::Mobile; スライド資料 [slideshare.net] Encode::JP::Mobileは、絵文字周りのためのPerl用のモジュールです。 絵文字周りの現状の仕様から、基本的な説明、使い方やインストール方法まで、シンプルに説明されています。 Perl使
指定したhook pointを実行し、順番にhook pointのコードを処理し、最初に戻り値があった時点で以降に登録されたコードの実行は行ないません Hook関連のメソッドは少なく、シンプルですね。 register_hookは主にPluginから利用されるメソッドになっており、hook pointとhook poinに対するコードをPlaggerに対して登録します。 Class::Triggerで言う所のadd_triggerになります。 実際のプラグインのコードを引用すると下記のように利用されます。 # Plagger::Plugin::Publish::CHTML sub register { my($self, $context) = @_; $context->register_hook( $self, 'publish.feed' => \&feed, 'publish.fi
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く