2011年 07月 25日

gerry++

AnyEvent::setTimeout

AE::timer のインターフェイスが覚えられないなーと思うので、JS の setTimeout に似たものを書きました。

use AnyEvent::setTimeout;

setTimeout(sub {
  warn "1sec!";
}, 1000);

とか書けます。ちょっと細工をしていて、ファイルの最後に AnyEvent->condvar->recv とかおまじないを書かなくても、終了時に全てのタイマーの終了を待ちます (node.js 風にしたいけどできないのか的なことを言ってたら id:motemen:detail 先生ができそうなことを言ってくれたのでやってみた感じです)

ただ、このモジュールの管理下にあるタイマーしか終了時に待てないのがいまいち感あります……

とりあえず setTimeout さえあれば JSDeferred をそのまんま移植できるなーと思った感じなんですが、それやって意味があるのか謎なのでやめました。

まぁこういうの書いてるうちに AE::timer のインターフェイスとか覚えちゃうんですけど……

2011年 07月 23日

2011年 07月 22日

TODO

  • ドメイン更新
2011年 07月 21日

HTML メール

どうやって作るのが簡単なんでしょうか… 以下のようにしがちですがよくわかりません

use Encode;
use Email::MIME;
use Email::MIME::CreateHTML;

my $html = <<EOS;
<!DOCTYPE html>
<head>
<title>タイトル</title>
</head>
<body>
	<h1>ああああ</h1>
</body>
</html>
EOS

my $text = <<EOS;
テスト
EOS

my $email = Email::MIME->create_html(
	header => [
		From    => 'from@example.com',
		To      => 'cho45@lowreal.net',
		Subject => encode("MIME-Header-ISO_2022_JP", 'タイトル'),
	],

	body => encode('iso-2022-jp', $html),
	body_attributes => {
		content_type => 'text/html',
		charset      => 'iso-2022-jp',
		encoding     => 'base64',
	},

	text_body => encode('iso-2022-jp', $text),
	text_body_attributes => {
		content_type => 'text/plain',
		charset      => 'iso-2022-jp',
	},
);

print $email->as_string;

#use Email::Send;
#my $sender = Email::Send->new({mailer => 'SMTP'});
#$sender->send($email);
2011年 07月 20日

gerry++