Perlカテゴリーの一覧

2009年09月07日(月) 23:28

Perlコミュニティ及び、無知と馬鹿の違い - taro-nishino の日記  /MSM

Perlは違う言語なのである。貴方が別の言語から来ているなら、貴方の慣れたやり方とは違うやり方で問題にアプローチすることが屡々要求される。Perlに来る時は、この事実を認識する必要があり、貴方の方法を彼らの方法に切り替えることに率直でなければならない。

≫全文を読む


2009年04月07日(火) 15:08

 XML::Feed::Deduper 書いた - TokuLog 改めB日記/MSM

http://github.com/tokuhirom/p5-xml-feed-deduper/tree/master
feedをaggregateしてきて、あたらしいエントリがあったらなんか処理する、みたいなのはよくやるんですが、そういう処理をやるたびに DB_File とかつかってどうこう、みたいなのはめんどいので、適当にできるモジュールをでっちあげた。

≫全文を読む


2009年02月09日(月) 22:34

 utf8::is_utf8 considered harmful - Bulknews::Subtech - subtech/MSM

プログラムやモジュールでは「この文字列は Unicode 文字列であるかバイト列であるかわからない」という入出力パラメータを扱うべきではなく、つねに「Unicode 文字列」や「バイト列」であることを明確にしておくべき。そうすれば decode_utf8 や utf8::upgrade などで明確にフラグをたてることができる。

≫全文を読む


2009年01月17日(土) 20:18

    MVCのモデルはDBじゃなくてもいいんだよ - D-6 [相変わらず根無し]/MSM

DBICはRDBMS特有ストレージのモデル的抽象化であり、本来は他のビジネスオブジェクトの裏で消えているべきところが、実際にはものすごくよく使うものだから同レベルでのモデルが存在する、というそれだけの事。


あなたがこれから書くCatalystアプリはDBICを使うにしてもControllerから直接の呼び出しは避けましょう。それは本来抽象化されているべきことです。そういうふうに組み立てて行くとうまく密結合を防ぐ事ができるはず。

≫全文を読む


2009年01月17日(土) 20:02

Catalyst::Model::Adaptorを使ってみた - hide-k.net#blog/MSM

Catalyst::Model::Adaptorのパッケージには 
Catalyst::Model::Adaptor - アプリケーションの起動時にインスタンスを生成
Catalyst::Model::Factory::PerRequest - リクエストごとにインスタンスを生成
Catalyst::Model::Factory - $c->model()で呼ばれるたびにインスタンスを生成 
が入ってるのでそれぞれの用途で使い分けるといいです。

≫全文を読む


2008年12月20日(土) 10:20

[ThinkIT] 第5回:AtomPP を利用したWeb API (1/2)/MSM

はてなブックマークにポストする

#!/usr/bin/perl
use strict;
use warnings;
use XML::Atom::Client;
use XML::Atom::Entry;
use XML::Atom::Link;

my $api = XML::Atom::Client->new;
$api->username('ユーザー名');
$api->password('パスワード');

my $collection_uri = 'http://b.hatena.ne.jp/atom/post';
my $uri = '登録するエントリのURI';
my $comment = 'コメント';

my $link = XML::Atom::Link->new;
$link->type('text/html');
$link->rel('related');
$link->href($uri);
my $entry = XML::Atom::Entry->new;
$entry->add_link($link);
$entry->add(undef,'summary',$comment,{type => 'text/plain'});
my $member_uri = $api->createEntry($collection_uri, $entry);

my $posted_entry = $api->getEntry($member_uri);
print $posted_entry->as_xml;

≫全文を読む


2008年12月15日(月) 05:57

 perlのエラー処理 -OKWave/MSM

Perl には例外処理がないので、シグナルをキャッチするしかないんじゃないかと思います。
 たとえば、
  $SIG{'TERM'} = "terminal";
 と宣言すると、TERM シグナルが発生した場合に自動的に terminal(); 関数が呼ばれます。
 利用可能なシグナルの一覧を調べるには、
  perl -e "$,=qq/\n/;print keys(%SIG);"
 をコマンドラインから入力してください。

≫全文を読む


2008年12月14日(日) 20:01

教えて!Ziddyちゃん サブルーチンを変数を使って呼び出したい。/MSM

サブルーチンへのリファレンスをハッシュに設定して、それをコールするのが素直と思われます。こんな感じ:

use strict;
sub hogehoge( $ ){ print 'msg: ', $_[0], "\n"; }
my %Proc = ( 'hoge' => \&hogehoge );
my $call = 'hoge';
$Proc{ $call }->( 'test' );

≫全文を読む


2008年12月09日(火) 08:45

ワンライナーで画像収集/MSM

女の子の太もも画像 ( http://metiss.blog92.fc2.com/blog-entry-142.html ) にリンクされている画像をカレントディレクトリにダウンロードしたければ以下のようなコマンドをたたくだけです。

  $perl -MLWP::Simple -MFile::Basename -e 'map{mirror($_,basename($_))} get($ARGV[0]) =~ m{<a.*?href="(http://[^"]+\.jpg)"}gi;' http://metiss.blog92.fc2.com/blog-entry-142.html

≫全文を読む


2008年11月30日(日) 15:43

HTTP::Engine がメモリつかいすぎ &amp; 起動時間がかかりすぎの件 と Shika - TokuLog 改めB日記/MSM

どのモジュールがどのモジュールを起動時にロードしているかについては、id:miyagawa さんに教えていただいた下記のワンライナーが便利です。
perl -Ilib -E 'BEGIN { unshift @INC, sub { say join "\t=>\t", scalar(caller), $_[1] } }; use HTTP::Engine; use HTTP::Engine::Interface::CGI'

このワンライナーをつかって、いらないモジュールは遅延ロードにしてしまいましょう。

≫全文を読む


2008年11月10日(月) 19:02

Perl の演算子と優先順位/MSM

    左結合      項  リスト演算子 (左方向に対して)
    左結合      ->
    非結合      ++ --
    右結合      **
    右結合      ! ~ \ 単項の+ 単項の-
    左結合      =~ !~
    左結合      * / % x
    左結合      + - .
    左結合      << >>
    非結合      名前付き単項演算子
    非結合      < > <= >= lt gt le ge
    非結合      == != <=> eq ne cmp
    左結合      &
    左結合      | ^
    左結合      &&
    左結合      ||
    非結合      .. ...
    右結合      ?:
    右結合      = += -= *= などの代入演算子
    左結合      , =>
    非結合      リスト演算子 (右方向に対して)
    右結合      not
    左結合      and
    左結合      or xor

≫全文を読む


2008年06月16日(月) 18:48

Perl 言語自身すら拡張する Filter 機能をお勉強 :: Drk7jp/MSM

Source Filters とは何か? perlfilter - Source Filters - search.cpan.org まずここから勉強です。ものすごく簡単に説明すると、perl の処理系が構文解析を実行する1つ手前でソースそのものを変更しちゃう機能ってことです。
Perl program(元ファイル) ---> source filter(ソースフィルタ) ---> parser(構文解析)

≫全文を読む


2008年05月12日(月) 02:31

 MapReduce - naoyaのはてなダイアリー/MSM

map() にはその計算問題のデータとしての key-value ペアが次々に渡ってきます。map() では key-value 値のペアを異なる複数の key-value ペアに変換します。reduce() には、map() で作った key-value ペアを同一の key で束ねたものが順番に渡ってきます。その key-values ペアを任意の形式に変換することで、最終的な出力を得ます。

≫全文を読む


2008年02月18日(月) 16:03

Perl-5.8 MEMO/MSM

Perl-5.8.2 を使う上で困ったことなど

≫全文を読む


2008年02月18日(月) 16:01

Perl 5.8 以降においての Unicode 文字列の扱い方 : NDO::Weblog/MSM

Perl 5.8 は内部処理によって Unicode文字列を適切に処理するようになったため、その辺りをあまり気にする必要はないとかどっかで聞いた気がしますが、個人的には、結構ちゃんと意識してないとはまってしまうように思います。

≫全文を読む


2008年02月18日(月) 15:55

Perl XMLでencoding='Shift_JIS'や'euc-jp'を使う/MSM

Perlを使って日本語の入ったXMLファイルを処理しようとするさい、これまではencodingをどうするかというのが1つの悩みでした。
私は好きなマッピング・ファイルを"Shift_JIS"、"euc-jp"などのためのマッピング・ファイルにするためのスクリプトmkenc.plを作成しました。

≫全文を読む


2007年12月20日(木) 17:27

Index of //MSM

Here is perldoc.jp, experimental website for perldocjp project.

≫全文を読む


2007年10月31日(水) 10:55

HTML::Entities - HTMLエンティティを持つ文字列のエンコード、デコード/MSM

HTML文字エンティティを持つ文字列のエンコーディングとデコーディングをおこないます

≫全文を読む


2007年10月25日(木) 09:26

Perl表技集/MSM

文字列関連 | 日付関連 | 配列関連 | ハッシュ(連想配列)関連 | ファイル関連 | ディレクトリ関連 | 変換関連 | 正規表現関連 | ループ関連 | Net関連 | 算術演算 | 処理速度 | システム | その他取得 | その他

≫全文を読む


2007年10月18日(木) 04:29

String::Trigram - Find similar strings by trigram (or 1, 2, 4, etc.-gram) method - search.cpan.org/MSM

This module computes the similarity of two strings based on the trigram method. This consists of splitting some string into triples of characters and comparing those to the trigrams of some other string.

≫全文を読む


2007年10月12日(金) 22:27

Perlリファレンス ループ三種 while for foreach - [CGI・Perl]All About/MSM

Perlの主なループ文には、while、for、foreachの3種類があります。

≫全文を読む


2007年10月07日(日) 18:54

&#1758; (高速に)Apache の log を解析する正規表現 : a++ My RSS 管理人ブログ/MSM

!^([^\s]*) [^\s]* [^\s]* \[([^]]*)\] "([^"]*)" ([^\s]*) [^\s]* "(.*)" "(.*)"!

≫全文を読む


2007年09月17日(月) 13:28

ImageMagick:Exifメタ情報やプロファイルを取り除くパラメータ|blog|たたみラボ/MSM

メタ情報を消したいときは次のオプションを使用するとよいことがわかりました。
画像の寸法はそのままで、メタ情報だけ消したいとき
-stripを使う。
画像をリサイズしつつ、メタ情報も消したいとき
-thumbnailを使う。

≫全文を読む


2007年09月12日(水) 11:06

IBM Perlモジュールの展開を自動化する - Japan/MSM

CPANモジュールは、実際には内部API(application program interface)を取り巻くラッパーに過ぎないことを、多くの人は知りません。例えば、CPANに用意されている使えるバージョンと比べて古くなっているインストール・モジュールのリストを生成するためには、単純にCPAN::Shell->rを呼べばよいのです。

≫全文を読む


2007年09月12日(水) 10:51

[を] Net::Amazon のメモ/MSM

#!/usr/bin/perl
use strict;
use warnings;
use Net::Amazon;
use Cache::File;
use Encode;
binmode STDOUT, ":utf8";

my $cache = Cache::File->new(cache_root => '/var/tmp/cache-amazon',
                             lock_level => Cache::File::LOCK_LOCAL(),
                             default_expires => '24 hours');

my $ua = Net::Amazon->new(token => 'YOUR_TOKEN',
                          locale => 'jp',
                          cache => $cache,
                          max_pages => 1,
                          );

#my $response = $ua->search(asin => '4873110505');
#my $response = $ua->search(blended => "Perl");
my $response = $ua->search(keyword => "Perl", mode => "books-jp");
#my $response = $ua->search(keyword => "Perl", mode => "books");

if (not $response->is_success()) {
    print "Error: ", $response->message(), "\n";
    exit;
}

print $response->as_string(), "\n";

for ($response->properties()) {
    print "Asin()\t", $_->Asin(), "\n";
    print "ProductName()\t", $_->ProductName(), "\n";
  %2

≫全文を読む


2007年09月11日(火) 09:29

YappoLogs: Xangoというクロウラーフレームワークを使ってみる/MSM

Xangoを使ったクロウラーを書くには、制御用のにPOEセッションを作る必要があります。
Xangoを制御するためのモジュールを適当な名前で作っておくのがスマートかと思います。

≫全文を読む


2007年08月30日(木) 18:54

[Perl] XML::FeedPP - RSS・RDF・Atomフィードの解析・生成・変換・結合/MSM

XML::FeedPP モジュールは、 RSS 2.0、RSS 1.0 (RDF)、Atom 0.3(および1.0)フィードの XML ファイルを解析・生成・変換・結合するための Perl モジュールです。
RSS ベースの1種類の共通 API で RSS・RDF・Atom の各フォーマットの処理に対応しているため、手軽に扱えます。
フィードの読み出し・書き込みはもちろん、 RSSからRDFへ、RDFからAtomへといった各フォーマット間の相互変換も可能です。
他サイトからダウンロードした複数のファイルを結合して、まとめて1つのファイルとして出力することもできます。

≫全文を読む


2007年08月30日(木) 18:52

[Perl] XML::TreePP - Pure Perl実装によるXMLファイル展開モジュール/MSM

XML::TreePP モジュールは、 XML ファイルを解析してツリー構造の多次元変数(ハッシュ/配列)に展開します。
XML テキストと Perl オブジェクト(ハッシュ&配列)間の相互変換が可能です。
コンパイル不要の Pure Perl 実装モジュールなので、プロバイダのレンタルサーバ環境でも .pm ファイル単体のコピーのみで手軽に利用できます。
(Ajax で利用する JavaScript の XMLHttpRequest オブジェクトのように)サーバからの XML ファイルのダウンロード処理にも対応しています。

≫全文を読む


2007年08月28日(火) 19:46

The CPAN Search Site - search.cpan.org/MSM


2007年08月27日(月) 18:09

Perlメモ/MSM

改行コードを <BR> に変換する<BR>s/\x0D\x0A|\x0D|\x0A/<BR>/g;<BR><BR>改行コードは Windows(DOS)では \x0D\x0A, Macでは \x0D, UNIX では \x0A なので,これらすべての改行コードに対応するには \x0D\x0A|\x0D|\x0A とする必要があります.このとき順番は \x0D\x0A を必ず最初にしなければなりません.このスクリプトは簡潔でわかりやすく書かれてはいますが, 実行速度は遅いです. s/\x0D\x0A|[\x0D\x0A]/<BR>/g; とするとほんの少し速くなりますが,ほとんどの場合次のように 3文でやった方が圧倒的に速いです. <BR>s/\x0D\x0A/<BR>/g;<BR>s/\x0D/<BR>/g;<BR>s/\x0A/<BR>/g;

≫全文を読む


2007年08月27日(月) 17:55

CGI::Cookie - Netscape クッキーへのインターフェース/MSM

use CGI qw/:standard/;
use CGI::Cookie;
# 新しいクッキーを作成し、それを送信します
$cookie1 = new CGI::Cookie(-name=>'ID',-value=>123456);
$cookie2 = new CGI::Cookie(-name=>'preferences',
-value=>{ font => Helvetica,
size => 12 }
);
print header(-cookie=>[$cookie1,$cookie2]);
# 既にあるクッキーを取り出します
%cookies = fetch CGI::Cookie;
$id = $cookies{'ID'}->value;
# 外部ソースから返されたクッキーを作成します
%cookies = parse CGI::Cookie($ENV{COOKIE});

≫全文を読む