2009-01-01から1年間の記事一覧

hashをvalueでソートする

忘れそうなので、メモ。 $hash = { "ほげ" => 10, "ふが" => 5, "ぴき" => 30 }; for my $key (sort { $hash->{$b} <=> $hash->{$a} } keys %$hash) { print $key, ",", $hash->{$key}, "\n"; } http://codepad.org/dRkHNzJM教えてくださった方、ありがとう…

use WWW::Shorten::Google;

GoogleのURL短縮API叩くモジュールがあったので実装してみたモジュールはGithubからもってきました。 http://github.com/yappo/p5-WWW-Shorten-Google/ #!/usr/bin/perl use strict; use warnings; use utf8; use CGI; use CGI::Carp; use WWW::Shorten::Goo…

use Smart::Comments が便利すぎる

use Smart::Comments; が便利すぎるので、主要な部分をかなり適当に意訳しました。 原文も載せておきますので、「ここおかしい」「この訳のほうが適切」という箇所を見つけた場合、報告していただけるとありがたいです。 NAME Smart::Comments - Comments th…

Unicode正規化 と Unicode::Normalize

DBに日本語文字列を INSERT して検索できるようにする時に、全角・半角での表記のぶれが問題になる。 そこで使われるのが Unicode::Normalize モジュール。 Acrive Perl 5.10.1 では標準。結論 1. NFKC 関数で正規化し、それを検索用カラムに突っ込む 2. 検…

Go lang (Debian Lenny) インストール

Go

Go Debian Lenny 概略だけの手抜き。この通りにやってもおそらくインストールできないので、正式ページ http://golang.org/doc/install.html を参考にすること。.bashrc に以下の環境変数を追記 export GOROOT=$HOME/go export GOARCH=386 export GOOS=linux…

Queueの管理で並列ダウンロード

3スレッドでダウンロードを並列して行いたい。スレッドのキューを使って解決できた use strict; use warnings; use threads; use threads::shared; use Thread::Queue; use LWP::UserAgent; # ダウンロードキューを生成する my @download_list = ( "http://e…

ついったーはじめました

http://twitter.com/punytan

use threads; するときに注意すべきこと の続編

[Perl][threads] use threads; するときに注意すべきこと http://d.hatena.ne.jp/punitan/20091018/1255892339これの続編なぜスレッド処理をするとインタプリタが落ちるのか原因がわかった。 Thread safety use encoding ... is not thread-safe (i.e., do n…

XML::RSSを使う時の注意点

RSSのitemの中に <nicolive:community_name>hogehoge</nicolive:community_name> のような名前空間がある場合は、 $rss->add_module(prefix=>'nicolive', uri=>'http://live.nicovideo.jp/'); のように xmlnsを指定してから記述しないとデータを読めない。 add_moduleしておけば、 $rssData{coName} = $item->{ni…

use threads; するときに注意すべきこと

use threads; で1日嵌った。 環境は Active Perl - v5.10.1 built for MSWin32-x86-multi-threadthreadsを使う時、標準出力のエンコードをbinmodeで指定しておくとインタプリタが落ちる。なので、 my $cp932 = find_encoding('cp932'); print $cp932->encode…