2008-11-01から1ヶ月間の記事一覧

Perl: ファイル全体を一度に読む込む

以下がその方法。 my $code = do { local $/; <$in> }; 説明 グローバル変数「$/」は,入力レコードセパレータ。 これをローカル化すると,「$/」の値は undef となる。 「$/」の値が undef の場合,入力は分離されていない単一のレコードとして扱われる。 l…

Plagger: Bloglinesの未読項目をGmailに転送する事がある日を境に出来なくなっていたが...

ある日を境に, Bloglines のサイトをブラウザで見ると未読項目が沢山あるのに,なぜか Plagger で未読項目を Gmail に転送しようとすると, Plagger::Plugin::Subscription::Bloglines [info] You have 0 unread item(s) on Bloglines. と,未読項目は「0」…

「ブロック」と「無名ハッシュコンストラクタ」の曖昧さを解決する方法

プログラマがどちらのつもりで中括弧を使っているのか,コンパイラ(パーサ)に知らせる方法は以下の通り。 無名ハッシュコンストラクタを使うつもりだということをコンパイラに知らせるには { の前に + 記号を付けて,+{ ... } のように書く コードブロック…

Perl: サブルーチンからの失敗のリターン

"失敗状態を返すには、裸の return を使用する" Perlベストプラクティス作者: Damian Conway,クイープ出版社/メーカー: オライリー・ジャパン発売日: 2006/08/24メディア: 大型本購入: 11人 クリック: 153回この商品を含むブログ (155件) を見る

Perl における 「サブルーチン」と「メソッド」のプロトタイプの取扱い

サブルーチン プロトタイプはチェックされる メソッド プロトタイプは無視される これは知らなかった。 でも言われてみればそうだよね。OOで書いた場合,継承関係を辿ってメソッドを探す為,実行時にならないと,実際にどのメソッドが呼び出されるかは分から…

今日出会ったCPANモジュール

Contextual::Return - Create context-senstive return values これはまた便利というか面白いモジュール。Perl には wantarray という組み込み関数がある。 これは,メソッドの呼出し側が戻り値としてリストコンテキストを要求しているのか判定する時に使用…

http://b.hatena.ne.jp/{はてなID}/favorite.rss 空!空!空!空〜

以下の問題は,2008/11/27現在解消されましたのでご注意下さい。(以下,古い記事) 昨日から新しくなった,はてなブックマークを早速利用しているのだが...はてなブックマークのお気に入りのフィードの内容が何故か空なのだが...http://b.hatena.ne.jp/h3x/fa…

今日出会ったCPANモジュール

ユーティリティ Scalar::Util - A selection of general-utility scalar subroutines List::Util - A selection of general-utility list subroutines List::MoreUtils - Provide the stuff missing in List::Util

スリープ処理

Perlの組み込み sleep 関数は,スリープ時間を浮動小数点で指定した場合であっても,整数単位の秒数でのみ,プログラムを一時停止するらしい。 sleep 1.5; # sleep(int(1.5))と同じで,1秒間スリープする sleep 0.5; # sleep(int(0.5))と同じで,0秒間スリー…

今日出会ったCPANモジュール

Memoize - Make functions faster by trading space for time このモジュールを使用すると,サブルーチンから返される値をすべて記憶し,次回サブルーチンが同じ引数で呼び出されたときに,同じ値を(再計算せずに)直ちに返してくれるようになる。 # SYNOPSI…

正規表現

オプションのメモ 「x」オプション 空白文字が無視される コメントを挿入できる 空白を使いたいときは,\でエスケープする # を使いたいときは,\でエスケープする 「m」オプション ^ や $ のアンカーが複数行に対応する 「s」オプション . (ドット)が改行文…

miyagawa さん products の remedie を使ってみた

まず,ソースを取ってくる。 svn checkout http://remedie.googlecode.com/svn/trunk/ remedie/HACKING を読む。必要な事は全て書かれている。 依存モジュールを以下のコマンドで調べてインストールする。 ack -h ^use lib | sort -u | perl -Ilib 以下のコ…

Twitter/Wassr まとめて投稿

Twitter と Wassr に同じ内容の投稿をする為だけのスクリプト。 #!/usr/bin/perl use strict; use warnings; use utf8; use Encode; use Perl6::Say; use Net::Twitter; use Net::Wassr; use Term::Encoding; my $conf = { twit => { user => 'username', pa…

今日出会ったCPANモジュール

Sub::Installer - A cleaner way to install (or reinstall) package subroutines これ何気に便利かも。 今までモジュールをインポートしたクラスにメソッドをインストールするには, import メソッドの中とかで以下の用に書くのが(自分の中では)常套手段…

今日出会ったCPANモジュール

HTML::TokeParser::Simple - Easy to use HTML::TokeParser interface # SYNOPSIS use HTML::TokeParser::Simple; my $p = HTML::TokeParser::Simple->new( $somefile ); while ( my $token = $p->get_token ) { # This prints all text in an HTML doc (i.e…

JavaScript Include

<html> <body> <script src="/path/to/foo.js"></script> </body> </html> // foo.js document.writeln('<div class="rssChannel">'); document.writeln(' <h3 class="rssTitle">'); document.writeln(' <a href="http://blog.excite.co.jp/shokotan">しょこたん☆ぶろぐ</a>'); document.writeln(' </h3>'); do…</div>

今日出会ったCPANモジュール

Path::Class - Cross-platform path specification manipulation Digest::MD5 - Perl interface to the MD5 Algorithm 参考 クロスプラットフォームなファイル・ディレクトリパスの操作

Perl 日本語処理 もう文字化けなんて見たくない

script は UTF-8 で書く use utf8; を使用し,perl に script が UTF-8 で書かれているという事を教える use strict; use warnings; use utf8; ファイルオープン時に文字コードを指定する open my $in, '<:encoding(euc-jp)', $infile or die "$!"; open my $out, '>:encoding(utf8)', $outfile or die "$!"; 外部から取</:encoding(euc-jp)',>…

今日出会ったCPANモジュール

Devel::Peek - A data debugging tool for the XS programmer スカラ変数が内部的にどのような値として表現されるかを表示する。 utf8 - Perl pragma to enable/disable UTF-8 (or UTF-EBCDIC) in source code ソースコードが UTF-8 で書かれているなら,こ…

Aha! Encode

受信したものはデコードし、出力するものはエンコードする。 ただし、それがテキストデータである場合に限る。あぁ〜なんてシンプルなんだ KISS バイト文字列 ----> Unicode 文字列 : decode() バイト文字列 <---- Unicode 文字列 : encode() Unicode 文字…

さよなら? Data::Dumper。初めまして Debug::Dumper

いつも Data::Dumper モジュールにはソースを Read/Write する時にお世話になっているんだけど,色々不満があったので Debug::Dumper というモジュールを書きました。Data::Dumper モジュールで不満だったのは特に以下の 2 点。 出力内容の encode 指定が出…

今日出会ったCPANモジュール

Readonly - Facility for creating read-only scalars, arrays, hashes. Readonly::XS - Companion module for Readonly.pm, to speed up read-only scalar variables. Perlで定数を使用する時は,まず上記2つのモジュールをCPANからインストールする。 実際…

ニコニコ動画を「ニコRSS」 + 「Plagger」で料理

先日ニコニコ動画もPlaggerで料理という記事を書きましたが,解決できました! まず,ニコRSSにアクセスし,「検索のRSS作成」の入力の所に, 【FF6】20代後半の叔母さんが頑張ります【実況プレイ】 と入力。それから「RSS作成」ボタンを押す。ワクワクしな…

今日出会ったCPANモジュール

CPAN::Mini - create a minimal mirror of CPAN $ du -hs ~/.minicpan 926M .minicpan/ 参考サイト CPAN::Miniの設定などなど use CPAN::Mini; CPAN::Mini で CPAN のミラーをローカルに acotieさんの記事でも触れられているが cpan> o conf prerequisites_p…

ニコニコ動画もPlaggerで料理

こんな事できたらいいなと妄想中。 ある特定の語句を動画のタイトルに含んでいる動画の情報を収集 ↓ それらの情報からフィードを生成 ↓ フィードが更新されていればGmailへ通知 最近「【FF6】20代後半の叔母さんが頑張ります【実況プレイ】」にハマってまし…

ハッシュや配列の命名規則 (こんなのもあるよ編)

名前の最後に前置詞(of,for,from 等)を追加すると,ハッシュや配列へのアクセスが理解しやすくなるそうな。 (by Perl Best Practices) → [ _ ]* サンプルコード my %title_of; my %ISBN_for; my @sales_from; while (my $month = prompt -menu => $MONTH_…

最近気になるMacBook Pro

PC

右を見ても左を見てもリンゴだらけ

プログラマなら思わずニンマリの名言

コードを書くときには、あなたのプログラムを保守する誰かが、 あなたの居場所を知っている凶暴な変質者であると心得よ 出典:Perlベストプラクティス 思わず一人ニンマリしてしまいました。Perlベストプラクティス作者: Damian Conway,クイープ出版社/メー…

DNBKなコードレイアウト それコードフォーマッタ

忘れそうなのでメモ。Perlの有名なコードフォーマッタ perltidyPerl Best Practices の推奨コードレイアウトにフォーマットするには,.perltidyrcファイルに以下の内容を書けばいいらしい。 -l=78 # Max line width is 78 cols -i=4 # Indent level is 4 col…

なんか耳に残るTrance Music

動画張りまくるとページが重くなるので嫌なんだけど,リンク切れするとイラットするし... でも×4そんなの関係ねぇCOOL!