タグ

Perlに関するtachiba1207のブックマーク (12)

  • daily dayflower - 半角←→全角変換,Unicode::Japanese に未公開機能が…

    2008-10-21 追記 いまだに(ありがたいことですが)検索で飛んできたりブクマされたりというのがちょいちょいあるので,最新動向を書いておきます。 id:tokuhirom さんが Lingua::JA::Regular::Unicode という Pure Perl Module をリリースなさいました(→ http://d.hatena.ne.jp/tokuhirom/20081018/1224300947)。 あなたが作っているアプリで文字列まわりを Unicode::Japanese インスタンスですべて持ちたいわけでなければ(そして,たいていのばあい,持つ必要はないのですが),この Lingua::JA::Regular::Unicode を使うのがベターです。依存性もなく,とても軽量ですので。 2008-10-21 追記おわり ウェブアプリを作っていると,ユーザが入力した半角

    daily dayflower - 半角←→全角変換,Unicode::Japanese に未公開機能が…
  • Perlメモ/日本語の扱い - Walrus, Digit.

    Perlで日語を使用するとき、正しく動かなくなる代表的なケースは次の2点です。 日語を扱う時、文字コードを意識していない。 正規表現で、日語の文字列を使うとエラーが出る。 日語を扱う時には、文字コードを意識する必要があります。 代表的な文字コードには「7ビットJIS」「SJIS(シフトJIS)」「EUC(日語EUC)」「UTF8(Unicode)」があります。 厄介なのは、同じ言葉でも、文字コードによってコンピューター内部での表現が違うことです。 例えば、WebブラウザからSJISで送られてきた「塚」という言葉と、EUCコードのスクリプト中で設定した「塚」という言葉を比較すると「別物だよ」という結果が出ます。 こうした問題が起きないように、普通は、以下のことに気をつけてスクリプトを作ります。 スクリプトを書くときに、どの文字コードを使うか決めておく。 データの入出力(CGIの

  • Perlモジュール/HTTP::Lite - Walrus, Digit.

    HTTPヘッダーのみを取得するHEADコマンドは更新確認などに良く用いられますが、HTTP::Liteにこれを行うためのメソッドはないようです。 そこで乱暴ですが、$http->{'method'}を直接指定することでHEADを実行することができます。 use HTTP::Lite; $http = new HTTP::Lite; $http->{'method'} = 'HEAD'; $req = $http->request("http://www.cpan.org/") or die "Unable to get document: $!"; print $http->body(); 2.1.4版ではメソッドを明示的に指定できるようになったようです。 この項はいずれ改稿します。 HTTP::Liteモジュールを使った簡単なHTTPクライアントスクリプトの例です。 引数の展開や実行結

  • 小さいファイルはJSONで、大きいファイルはYAMLで読み込むべき? JSON&YAMLのファイルロードのBench結果 - 雑想空間

    PerlYAML と JSON のベンチマーク比較 - Daio Today こちらの記事を読みました。 結果的には、YAML と 比べて JSON の方が 6倍〜8倍高速。ただし、これはデータ量が少ない場合で、データ量が大きくなると 0.5倍〜0.8倍 と差が縮まってしまう。 なるほど、そうなのか。 それなら、データ量がある一定量増えたところで、YAMLのほうが早くなったりするのかな? と、思い実験 1kb,2kb,3kb,4kb,5kb,10kbのファイル、yamlとjsonでそれぞれ用意してみた。 YAMLとJSON YAML::SyckとJSON::Syckをそれぞれ比べてみる。 コード #!/usr/bin/perl use strict; use warnings; use Data::Dumper; use Benchmark qw(cmpthese timethese

    小さいファイルはJSONで、大きいファイルはYAMLで読み込むべき? JSON&YAMLのファイルロードのBench結果 - 雑想空間
  • リストの要素数を取得する - Unknown::Programming

    配列ではなくてリストの要素数を取得するのにはどうすればよいか?というお話。 まず配列の場合はスカラコンテキストで評価するだけなんでとても楽。 my @data = qw/ a b c d /; my $count = @data; # 4 ではリストの場合はどうなるか? 配列と同じように書くなら my $count = qw/ a b c d /; こうなるが、これは大間違いである。 リストをスカラコンテキストで評価すると最後の要素が返ってくるのでこの場合$countには「d」が入る。 とするならば一度配列で受け取り、その後にスカラコンテキストで評価するのが一番スマートなのかもしれない。 my $count = my @tmp = qw/ a b c d /; # 4 しかしながら要素数を取得するだけなのに@tmpを広いスコープに置くのが嫌なのであればdoを使って囲ってしまうのが吉であろう

    リストの要素数を取得する - Unknown::Programming
  • 文字コードが utf8 の場合の Perl における文字数のカウント :: Weeeblog.net

    文字コードが utf8 の場合、日語は 3 バイトになるため、カウントしたい文字列をいったんデコードしてから文字数をカウントする必要があります。その際、正確に文字数をカウントするために改行は削除しておくこと。 以下のようにして Encode モジュールを使用し、デコードしてから文字数のカウントを行います。 #!/usr/bin/perl -w use Encode qw(decode); my $text = 'こんにちは世界'; my $c_text = $text; $c_text =~ s/\r//sig; $c_text =~ s/\n//sig; my $length = length(decode('utf-8', $c_text)); print 'length => ' . $length; 出力結果は以下のようになります。 length => 7

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

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

  • perlメモ:alarmを使ったタイムアウト処理

    perlでalarmを使ってタイムアウト処理を行う方法。割り込みとか、アラームとか、タイマーとかタイムアウト処理とか言ったりします。 perlでWebをGETするプログラムを書いたりすると、相手のサーバーが死んでいると、応答が無くなってプログラムが止まったままにになったりします。WebのGETにかかわらず、通信関係ではよくあることですが、例えば複数のURLを定期的にチェックするプログラムをperlで書いたときにチェックしてるURLのうちの一つでもサーバーが落ちたりしてると応答が帰ってこなくて他のURLまでチェックできなくなってしまったりします。これでは困るので、タイムアウト処理が必要になるのですがその場合に重宝するのがalarmです。 perl.comのサンプルソースをチョットいじったサンプルです。 下記のサンプルだと実行後while(1)の所で無限ループに陥ってしまいますが、その前で a

    perlメモ:alarmを使ったタイムアウト処理
  • XMLRPC::Lite - client and server implementation of XML-RPC protocol - metacpan.org

    NAME XMLRPC::Lite - client and server implementation of XML-RPC protocol SYNOPSIS Client use XMLRPC::Lite; print XMLRPC::Lite -> proxy('http://betty.userland.com/RPC2') -> call('examples.getStateStruct', {state1 => 12, state2 => 28}) -> result; CGI server use XMLRPC::Transport::HTTP; my $server = XMLRPC::Transport::HTTP::CGI -> dispatch_to('methodName') -> handle ; Daemon server use XMLRPC::Transp

  • WebService::weblogUpdates - methods supported by the UserLand weblogUpdates framework. - metacpan.org

    NAME WebService::weblogUpdates - methods supported by the UserLand weblogUpdates framework. SUMMARY use WebService::weblogUpdates; my $weblogs = WebService::weblogUpdates->new(transport=>"SOAP",debug=>0); $weblogs->ping("Perlblog","http://www.nospum.net/perlblog"); # Since the 'rssUpdate' method has only been # documented for the XML-RPC transport, we switch # the internal widget. $weblogs->Transp

  • RSS Pingを複数のURLに送信(XMLRPC::Lite):Geekなぺーじ

    ここでは、XMLRPC::Liteモジュールを使ってRSS Pingを複数のPing URLに対して送信する方法を説明したいと思います。 RSS Ping送信サンプル ブログ名、ブログURL、RSS URL、Ping先などを変更してご利用下さい。 Ping先を増やすには、@ping_urlにPing用URLを追加して下さい。 #!/usr/bin/perl use XMLRPC::Lite; #ここを変更して下さい $title = 'blog title'; $url = 'http://blogurl-hoge.jp/'; $rss = 'http://blogurl-hoge.jp/rss.xml'; #ここを変更して下さい @ping_url = ( 'http://rpc.reader.livedoor.com/ping', 'http://www.bloglines.com/p

  • [ヅラド] Perl で weblogUpdates.ping

    This page moved.

  • 1