携帯からここを更新するためのプログラム mail-entry で、 POP3 周りにバグを見つけたので、作者の osho さんところにコメントで報告しました

件の箇所では NET::POP3login メソッドが使われているのだけど、その返り値は

  • ログインに成功したときはメールの数
  • ログインに失敗したときは undef

となっていて、メールの数が 0 のときは "0E0" が返るようになっている。この "0E0" がミソで、ブーリアンコンテキストでは true になるけど、数値コンテキストでは 0 として扱われる値であるということをはじめて知った。なので、ログイン失敗かどうかを判断するのに

$pop3->login(  $id, $passwd )  or print "login failed";
とか書くだけで大丈夫だと。

C だとログイン失敗のときは -1 を返したりして、条件判定で == -1 としたり、成否のみを返り値にして成功時の値は引数で渡したポインタに代入したりするんだろうけど、 perl じゃその辺すっきりかけますねというお話。

トラックバック(0)

このブログ記事を参照しているブログ一覧: mail-entry のバグを報告

このブログ記事に対するトラックバックURL: http://tsuyuguchi.com/mt/mt-tb.cgi/46

最近の画像

Zero History - ギブスンの新作が 9 月に発売 -
虐殺器官
ドミニオンのランダマイザアプリ、dominion minion が日本語対応!
ハイペリオンの没落 ~ 完結...でもまだ続く~
ハイペリオンの没落 ~ 完結...でもまだ続く~
ハイペリオン - 長大な叙事詩 SF のスタート -
ハイペリオン - 長大な叙事詩 SF のスタート -
「都市と星」 - 10億年と言われてもよく分からない -
「星を継ぐもの」 - 良い Sci-Fi -
トールサイズのニューロマンサーを買った
虎よ、虎よ! - 主人公フォイルの執念の物語 -

私の本棚

 

自転車走行距離

自転車走行距離

Flickr Photos

FlickrPhotos

なかのひと

Y!ログール

このサイトについて

2015年2月

1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28

アーカイブ

My Update

  • Loading...

その他

あわせて読みたいブログパーツ