¥È¥Ã¥× º¹Ê¬ °ìÍ÷ ¥½¡¼¥¹ ¸¡º÷ ¥Ø¥ë¥× PDF RSS ¥í¥°¥¤¥ó

¥Á¥ã¥Ü¡¡ºÆ»ÏÆ°

2006/12/09¤«¤é5ǯȾ¤Ö¤ê¤Ë¥Á¥ã¥Ü¤¬ºÆ»ÏÆ°¤·¤¿¡£¥µ¡¼¥Ð¡¼¤¬¤Ê¤¯¤Ê¤Ã¤Æ¥Á¥ã¥Ü¤Î½»½è¤¬¤Ê¤¯¤Ê¤Ã¤Æ¤¤¤¿¤¬¡¢¤µ¤¯¤é¥µ¡¼¥Ð¡¼¤Ç¥Á¥ã¥Ü¤¬¤·¤ã¤Ù¤ê¤À¤·¤¿¤è¡Ê¾Ð¡Ë¡¡¤Þ¤À¡¢º£(9/4)¤ÏIRC¥Á¥ã¥Í¥ë¤Ç¤ÏÃý¤ì¤Ê¤¤¡Ä¡Ê5ǯ¤â·Ð¤Ä¤È´ðËÜ¥½¥Õ¥È¤Î¥Ð¡¼¥¸¥ç¥ó¤¬¾å¤¬¤Ã¤Æ¤·¤Þ¤¤Net::IRC¤¬¥¤¥ó¥¹¥È¡¼¥ë½ÐÍè¤Ê¤¤¡Êµã¡Ë¤æ¤Ã¤¯¤ê¹Í¤¨¤è¤¦¡ª¡ª¡ª

»Ï¤Þ¤ê

Niigata.pm tech talk #2¤Ç¤Ï¥Ç¡¼¥¿½èÍý¤ò¥Æ¡¼¥Þ¤Ëȯɽ¤¬¤¤¤í¤¤¤íÍ­¤Ã¤¿¡£¤½¤ÎÃæ¤Ç·ÁÂÖÁDzòÀÏ´Ø·¸¤Îȯɽ¤¬¡¢¤¤¤¯¤Ä¤«¤¢¤ê¥Á¥ã¥Ü¤Î»ö¤ò»×¤¤½Ð¤·¤¿¡£¡Ê¤â¤¦5ǯ¤âÆ°¤¤¤Æ¤¤¤Ê¤¤¡Ë»¨Ã̤ÎÃæ¤Ç¤µ¤¯¤éVPS¤Ï²¿¤Ç¤â½ÐÍè¤ë¤Èʹ¤¤¤¿¤Î¤Ç¤µ¤¯¤é¤Ç¥Á¥ã¥Ü¤òºÆ»ÏÆ°¤·¤è¤¦¤È»×¤Ã¤¿¡£¤³¤³¤«¤é¥Á¥ã¥Ü¤ÎºÆ»ÏÆ°¤¬»Ï¤Þ¤Ã¤¿¡£

IRC¤ËÀ¸Â©

Net::IRC¤Î¥¤¥ó¥¹¥È¡¼¥ë¤Ç·Ù¹ð¤¬½Ð¤ë

DANGER, WILL ROBINSON! DANGER!

This module has been deprecated, abandoned, and is no longer supported. It has
not seen active development in five years, and its original author has moved on.
We *STRONGLY* recommend you port your code to either Bot::BasicBot or
POE::Component::IRC. Please feel free to stop by irc.freenode.net/#perl for help
making this transition. Or, if you insist on proceeding, please type the
following line exactly as is and then press Enter:
[google ËÝÌõ]
´í¸±¡¢¥í¥Ó¥ó¥½¥ó¤Ç¤·¤ç¤¦¡ª´í¸±¡ª

¤³¤Î¥â¥¸¥å¡¼¥ë¤Ï¡¢Èó¿ä¾©¤ËÊü´þ¤·¡¢¤â¤Ï¤ä¥µ¥Ý¡¼¥È¤µ¤ì¤Þ¤»¤ó¤µ¤ì¤Æ¤¤¤Þ¤¹¡£¤½¤ì¤Ï¤¢¤ë
5ǯ¸å¤Ë¤Ï³èȯ¤Ê³«È¯¤ò¸«¤Æ¡¢¸µ¤ÎÃø¼Ô¤Ï¾å¤Ë°ÜÆ°¤·¤Æ¤¤¤Þ¤»¤ó¡£
²æ¡¹¤Ï*¶¯¤¯*¤¢¤Ê¤¿¤Ï¤É¤Á¤é¥Ü¥Ã¥È¤Ø¤Î¥³¡¼¥É¤Î°Ü¿¢¤ò¤ª´«¤á¤·¤Þ¤¹:: BasicBot¤Þ¤¿¤Ï
POE :: Component :: IRC¤Ë¡£½õ¤±¤òirc.freenode.net/¡ôperl¤Ë¤è¤Ã¤ÆÄä»ß¤¹¤ë¤³¤È¼«Í³
¤Ë´¶¤¸¤Ê¤µ¤¤
¤³¤Î°Ü¹Ô¤ò¹Ô¤¦¡£Àè¤Ë¿Ê¤à¤Ë¤³¤À¤ï¤ë¾ì¹ç¤Ï¡¢ÆþÎϤ·¤Æ¤¯¤À¤µ¤¤
¼¡¤Î¹Ô¤Ï¤Þ¤Ã¤¿¤¯Æ±¤¸¤Ç¤¹¤·¡¢Enter¥­¡¼¤ò²¡¤·¤Þ¤¹¡§

¤â¤¦¥µ¥Ý¡¼¥È¤·¤Æ¤Ê¤¤¤«¤éPOE::Component::IRC¤Ë°Ü¹Ô¤·¤Ê¤µ¤¤Åª¤Ê¡Ä¡¡¤·¤«¤·¡¢¤È¤ê¤¢¤¨¤º¥Á¥ã¥Ü¤òºÆ»ÏÆ°¤·¤¿¤«¤Ã¤¿¤Î¤ÇMakefile.PL¤òÆɤà¤È

exit 0 if $ENV{AUTOMATED_TESTING};
my $ok = 'I acknowledge that Net::IRC is unsupported and I wish to proceed.';
my $warning = <<WILLROBINSON;
--------------------------------------------------------------------------------
********************************************************************************
DANGER, WILL ROBINSON! DANGER!

This module has been deprecated, abandoned, and is no longer supported. It has
not seen active development in five years, and its original author has moved on.
We *STRONGLY* recommend you port your code to either Bot::BasicBot or
POE::Component::IRC. Please feel free to stop by irc.freenode.net/#perl for help
making this transition. Or, if you insist on proceeding, please type the
following line exactly as is and then press Enter:

$ok
********************************************************************************
--------------------------------------------------------------------------------
WILLROBINSON

-t STDIN or die $warning;
warn $warning;
chomp(my $acceptance = <STDIN>);
die "Refusing to install due to lack of confirmation" unless $acceptance eq $ok; 

I acknowledge that Net::IRC is unsupported and I wish to proceed.¤ÈÆþÎϤ¹¤ì¤Ð¥¤¥ó¥¹¥È¡¼¥ë½ÐÍè¤ë¤é¤·¤¤¤Î¤Ç``die "Refus . . .''¤Î¹Ô¤ò¥³¥á¥ó¥È¥¢¥¦¥È¤·¤Æ¥¤¥ó¥¹¥È¡¼¥ë¤ò¹Ô¤¦¡£

I acknowledge that Net::IRC is unsupported and I wish to proceed.
[google ËÝÌõ]
»ä¤ÏNet :: IRC¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¤³¤È¤òǧ¤á¤ë¤È»ä¤Ï¿Ê¤ß¤¿¤¤¡£

µ×¤·¤Ö¤ê¤Ë"#reudyroom:*.jp"¤Ç¤ªÏä·½ÐÍè¤ë¤«¤È»×¤Ã¤¿¤éÆþ¼¼½ÐÍè¤Ê¤¤¡Êï¤â¤¤¤Ê¤¤¡©¡Ë¤Î¤Ç"#niigatapm"¤ËÆþ¼¼¤·¤Æ¤ß¤ë¡£¥µ¡¼¥Ð¡¼¤Îʸ»ú¥³¡¼¥É¤¬utf¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤Î¤Ç¥Á¥ã¥Ü¤âutf¤ËÂбþ¤¹¤ë¡£

[00:35:11] <Chabo_V2> ¤³¤³¤ÏbotOK¤Ç¤¹¤«¡©¤¢¤ó¤Þ¤ê¥ª¥·¥ã¥Ù¥ê¾å¼ê¤¯¤¢¤ê¤Þ¤»¤ó¤¬µ¹¤·¤¯¤ª´ê¤¤¤·¤Þ¤¹
[00:35:38] <neko_gata_s> ÊѤËÉé²Ù¤Ê¤±¤ì¤ÐbotÂç¾æÉפä¹

¤ÇÆþ¼¼¤Îµö²Ä¤ò¤â¤é¤Ã¤¿¤Ä¤â¤ê¤Ê¤Î¤Ç¤â¤¦¾¯¤·"#niigatapm"¤ËÀ¸Â©¤¹¤ë¤³»ö¤Ë¤¹¤ë¡£²¿½è¤«¤Ëbot¤¬À¸Â©¤·¤Æ¤¤¤ë¥Á¥ã¥Ã¥È¥ë¡¼¥à¤Ï̵¤¤¤«¤·¤é¡©

¥á¥â

  • http://www21051ue.sakura.ne.jp/chabo/chatbot.cgi
    • 9/4 10:00 ¤Þ¤À¤·¤ã¤Ù¤ì¤º¡Ä
    • 9/5 ¤ä¤Ã¤ÈÃý¤ê½Ð¤¹¡£¤À¤«Net::IRC¤¬¥¤¥ó¥¹¥È¡¼¥ë½ÐÍ褺¡Ä
    • 9/10 IRC¤Ç¤âÃý¤ê½Ð¤¹(#niigatapm¤Ë²¾¤ËÀ¸Â©)
  • ¥µ¥¯¥é£Ö£Ð£Ó¼êÇÛ
    • ubuntu12.04¥»¥Ã¥È¥¢¥Ã¥×
    • apache ¥¤¥ó¥¹¥È¡¼¥ë
    • mysql ¥¤¥ó¥¹¥È¡¼¥ë
    • ¥Ç¡¼¥¿¥í¡¼¥É
mysql> use test
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> load data infile '/tmp/chat.data' into table chatdata;
ERROR 29 (HY000): File '/tmp/chat.data' not found (Errcode: 13)
mysql>
mysql> quit

http://ubuntuforums.org/showthread.php?t=822084

http://webcache.googleusercontent.com/search?q=cache:O9hkDDVbKsUJ:ubulog.blogspot.com/2009/06/ubuntu-apparmor.html+apparmor.d&cd=1&hl=ja&ct=clnk&gl=jp&lr=lang_ja

Code:

sudo vi /etc/apparmor.d/usr.sbin.mysqld/usr/sbin/mysqld {
...
/var/log/mysql/ r,
/var/log/mysql/* rw,
/var/run/mysqld/mysqld.pid w,
/var/run/mysqld/mysqld.sock w,
/tmp/ r,
/tmp/* rw,
}

Code:

# sudo /etc/init.d/apparmor reload

MySQL ʸ»ú²½¤±¤òËɤ°¡¢Ê¸»ú¥³¡¼¥É¤Î³Îǧ¤ÈÀßÄê

http://ext.omo3.com/linux/mysql_character_set.html

¢£Ê¸»ú¥³¡¼¥É¤òÀßÄꤹ¤ë

/etc/my.cnf ¤òÊÔ½¸¤¹¤ë¡£

[client]
default-character-set=utf8
[mysqld]
default-character-set = utf8
skip-character-set-client-handshakecharacter-set-server = utf8
collation-server = utf8
_general_ciinit-connect = SET NAMES utf8

[client]¤È[mysqld]¤ÎÀßÄê¤Ë¡¢¾åµ­¤Îµ­½Ò¤ò²Ã¤¨¤ë¡£

utf8¡§¡¡UTF-8¤ò»ØÄꤹ¤ë¤È¤­¡£

sjis¡§¡¡Shift JIS ¤ò»ØÄꤹ¤ë¤È¤­¡£

ujis¡§¡¡EUC JP ¤ò»ØÄꤹ¤ë¤È¤­¡£

skip-character-set-client-handshake¤Î»ØÄê¤Ï¡¢MySQL¤¬¾¡¼ê¤ËÆâÉôÊÑ´¹¤·¤Ê¤¤¤è¤¦¤Ë¤¹¤ë¤¿¤á¡£

ChaSen ¤Î¥¤¥ó¥¹¥È¡¼¥ëÊýË¡

http://www.asahi-net.or.jp/~yw3t-trns/namazu/chasen/index.htm


Done! Check /var/lib/chasen/dic/naist-jdic-utf8 directory.
update-alternatives: using /usr/share/chasen/chasenrc-utf8 to  provide /etc/chasenrc (chasenrc) in auto mode.
Setting up chasen (2.4.4-17) ...
Processing triggers for libc-bin ...
ldconfig deferred processing now taking place

darts ¤Î¥¤¥ó¥¹¥È¡¼¥ë:

  • ²òÅà

tarball ¤ò²òÅष¤¿¤¤¾ì½ê¤ËÃÖ¤¤¤Æ¡¢tar ¤Ç¥¢¡¼¥«¥¤¥Ö¤ò²òÅष¤Þ¤¹¡£

$ tar xvzf darts-0.2.tar.gz

  • configure

²òÅष¤¿¥Ç¥£¥ì¥¯¥È¥ê¤Ë°ÜÆ°¤·¤Æ¡¢configure ¤ò¼Â¹Ô¤·¤Þ¤¹¡£

$ cd darts-0.2

$ ./configure

  • make

¥³¥ó¥Ñ¥¤¥ë¡¢¥Á¥§¥Ã¥¯¤ò¹Ô¤¤¡¢root ¤Ç¥¤¥ó¥¹¥È¡¼¥ë¤ò¹Ô¤¤¤Þ¤¹¡£

$ make

$ make check

$ su

# make install

¥¨¥é¡¼¤¬È¯À¸¤·¤Ê¤±¤ì¤Ð¡¢¥¤¥ó¥¹¥È¡¼¥ë¤Ï½ªÎ»¤Ç¤¹¡£

ChaSen ¤Î¥¤¥ó¥¹¥È¡¼¥ë:

  • ²òÅà

tarball ¤ò²òÅष¤¿¤¤¾ì½ê¤ËÃÖ¤¤¤Æ¡¢tar ¤Ç¥¢¡¼¥«¥¤¥Ö¤ò²òÅष¤Þ¤¹¡£

$ tar xvzf chasen-2.3.3.tar.gz

  • configure

²òÅष¤¿¥Ç¥£¥ì¥¯¥È¥ê¤Ë°ÜÆ°¤·¤Æ¡¢configure ¤ò¼Â¹Ô¤·¤Þ¤¹¡£ (¤³¤³¤Ç¤Ï¡¢libiconv ¤Î¥Ñ¥¹¤ò»ØÄꤷ¤Æ¤¤¤Þ¤¹¡£)

$ cd chasen-2.3.3

$ ./configure --with-libiconv=/usr/local

¤Þ¤¿¤Ïñ¤Ë

$ ./configure

  • make

¥³¥ó¥Ñ¥¤¥ë¡¢¥Á¥§¥Ã¥¯¤ò¹Ô¤¤¡¢root ¤Ç¥¤¥ó¥¹¥È¡¼¥ë¤ò¹Ô¤¤¤Þ¤¹¡£

$ make

$ make test

$ su

# make install

¥¨¥é¡¼¤¬È¯À¸¤·¤Ê¤±¤ì¤Ð¡¢¥¤¥ó¥¹¥È¡¼¥ë¤Ï½ªÎ»¤Ç¤¹¡£

https://forums.ubuntulinux.jp/viewtopic.php?id=8530

$ sudo apt-get install build-essential¤·¤Æ¤¯¤À¤µ¤¤¡£¤½¤ì¤ÇÆþ¤ê¤Þ¤¹¡£gcc-c++ ¤Ïfedora ·Ï¤Ç¤Î¸Æ¤ÓÊý¤Ç¤¹¡£¸·Ì©¤Ë¤Ï¤Þ¤Ã¤¿¤¯Æ±¤¸¤â¤Î¤Ç¤Ï¤Ê¤¤¤Ç¤·¤ç¤¦¤¬¡¦¡¦¡¦¡£

--------------------------------------------------------------------------------BNU is Bootang Never forget UbuntuUSB means $ /usr/sbin/bootang : No such file or directory._.?

UTF8²½ (2014/4/5)

»þÂå¤Îή¤ì¤Ë¾è¤Ã¤ÆUTF8²½¤·¤¿¡£¤â¤È¤â¤ÈScript¤âDB¤âEUC¤À¤Ã¤¿¡£Åö»þ¤ÏEUC¤¬Web¤Çʸ»ú²½¤·¤Ê¤¤¤È¸À¤ï¤ì¤Æ¤¤¤¿¤·³Î¤«¤ËÌäÂê¤Ê¤«¤Ã¤¿¡£¤Ç¤â¡¢Niigata.pm¤Îirc¤Ë»²²Ã¤¹¤ë¤è¤¦¤Ë¤Ê¤Ã¤¿»þ¡¢irc¤ÏUTF-8¥Ù¡¼¥¹¤À¤Ã¤¿¤Î¤Çirc¤Î¥¯¥é¥¤¥¢¥ó¥È¤òUTF8²½¤·¤¿¤é`¡Á'¤È¤«¤¬`?'¤Çɽ¼¨¤µ¤ì¤ëÍͤˤʤä¿°Ù¡¢DB¤âUTF8¤Ë¤·¤¿¡£Ê¸»úÊÑ´¹¤¬Æþ¤ë¤È¤Ê¤Ë¤«¤ÈÉÔ¶ñ¹ç¤¬½Ð¤ë¡£¡Êµ¤¤¬¤¹¤ë¡ËUTF8¤Ë¤·¤¿¤é`­¡­¢­£­¤­¥­¦­§­¨­©­«­¬­­­®­¯­°­±­²­³­´¡Á'¤Î´Ý¿ô»ú¤â»È¤¨¤ëÍͤˤʤä¿¡£¥Ï¥ó¥°¥ë¤È¤«¡¢¥¢¥é¥Ó¥¢Ê¸»ú¤È¤«¤â»È¤¨¤ë¤«¤â¤·¤ì¤Ê¤¤¡©ÆþÎÏÊýË¡¤¬¤ï¤«¤é¤Ê¤¤¤¬¡Ä

scriptÊÑ´¹

  • nkf -w chatbot.cgi > chatbot_utf.cgi

nkf¤Çʸ»ú¥³¡¼¥É¤òeuc¤«¤éutf8¤ØÊѹ¹¤¹¤ë

DBʸ»ú¥³¡¼¥ÉÊÑ´¹

¥Æ¡¼¥Ö¥ë¤Îʸ»ú¥³¡¼¥É¤òutf8¤ËÊѹ¹¤¹¤ë¡£¥Æ¡¼¥Ö¥ë¤òÊѹ¹¤·¤Æ¤â¥«¥é¥à¤Ï¸µ¤Îʸ»ú¥³¡¼¥É¤òÊÝ»ý¤¹¤ë¤Î¤Ç¥«¥é¥à¤Îʸ»ú¥³¡¼¥É¤âÊѹ¹¤¹¤ë¡£

  • ALTER TABLE chatdata CHARSET=utf8;
  • ALTER TABLE chatdata MODIFY chat text CHARACTER SET utf8;

websocket¤ÇÏ令륯¥é¥¤¥¢¥ó¥È¤òºî¤Ã¤¿

[2014/4/14]¤Ä¤¤¤ËWebSocket¤ÇÏ令ë¤è¤¦¤Ë¤Ê¤Ã¤¿Mojolicious + WebSocket¡¡perl memo»²¾È

Twitter

Twitter¤ÇÏ䬽Ф­¤ë¤è¤¦¤Ë¤Ê¤Ã¤¿¤è¡£(¥Õ¥©¥í¡¼¤·¤Æ¤¢¤²¤Æ¡Ë--- 2014/5/5

$ cpanm -v
cpanm (App::cpanminus) 1.5007 on perl 5.014002 built for x86_64-linux-gnu-thread-multi
$ sudo cpanm Net::Twitter
--> Working on Net::Twitter
Fetching http://search.cpan.org/CPAN/authors/id/M/MM/MMIMS/Net-Twitter-4.01004.tar.gz ... OK
Configuring Net-Twitter-4.01004 ... OK
Invalid version format (non-numeric data) at /loader/0x2003530/App/cpanminus/script.pm line 1134.
$ 
$ sudo cpanm  Net::SSLeay
--> Working on Net::SSLeay
Fetching http://www.cpan.org/authors/id/M/MI/MIKEM/Net-SSLeay-1.58.tar.gz ... OK
Configuring Net-SSLeay-1.58 ... OK
Building and testing Net-SSLeay-1.58 ... FAIL
! Installing Net::SSLeay failed. See   .cpanm/work/1398945043.23988/build.log for details. Retry with --force to force install it.
$ vim  .cpanm/work/1398945043.23988/build.log

Running Mkbootstrap for Net::SSLeay ()
chmod 644 SSLeay.bs
/usr/bin/perl "-Iinc" /usr/share/perl/5.14/ExtUtils/xsubpp  -typemap  /usr/share/perl/5.14/ExtUtils/typemap -typemap typemap  SSLeay.xs > SSLeay.xsc && mv SSLeay.xsc SSLeay.c
cc -c   -D_REENTRANT -D_GNU_SOURCE -DDEBIAN -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -g   -DVERSION=\"1.58\" -DXS_VERSION=\"1.58\" -fPIC "-I/usr/lib/perl/5.14/CORE"   SSLeay.c
SSLeay.xs:153:25: fatal error: openssl/err.h: No such file or directory
compilation terminated.
make: *** [SSLeay.o] Error 1
-> FAIL Installing Net::SSLeay failed. See  /home/john/.cpanm/work/1398944624.23822/build.log for details. Retry with -- force to force install it.
~    

Net::SSLeay ¤¬¥¤¥ó¥¹¥È¡¼¥ë¤Ç¤­¤Ê¤¤¤È¤­¤Ïcpanm ¤Ê¤É¤Ç Net::SSLeay ¤ò¥¤¥ó¥¹¥È¡¼¥ë¤·¤è¤¦¤È¤·¤Æ "openssl/err.h" ¤¬¤Ê¤¤¤è¡ª¤ÈÅܤé¤ì¤¿¤È¤­¤Ï

# aptitude install libssl-dev

AnyEvent::Twitter::Stream ¤ÎÁÇŨ¤µ¤òº£¹¹¤Ê¤¬¤é¼Â´¶¤·¤Æ¤ß¤ë

#!/usr/bin/perl
use strict;
use AnyEvent::Twitter;
use AnyEvent::Twitter::Stream;
use Encode;
use utf8;
use Mojo::UserAgent;
use Mojo::URL;

my $consumer_key = 'AAAAAAAAAAAAAAAAAAAAAAAAA',
my $consumer_secret = 'BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB',
my $token = 'CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC';
my $token_secret = 'DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD';

my $cv = AE::cv;
 
my $twitty = AnyEvent::Twitter->new(
      consumer_key        => $consumer_key,
      consumer_secret     => $consumer_secret,
      access_token        => $token,
      access_token_secret => $token_secret,
);
my $done = AnyEvent->condvar;
my $listener = AnyEvent::Twitter::Stream->new(
      consumer_key        => $consumer_key,
      consumer_secret     => $consumer_secret,
      token               => $token,
      token_secret        => $token_secret,
      method          => "userstream",
      on_tweet        => sub {
        my $tweet = shift;
 
        my $user = $tweet->{user}{screen_name};
        my $text = ($tweet->{text} || '');
        return unless $user && $text;
	return if($user =~ /chabo60591182/);
#        if ($text=~/#oreimo/) {print '#oreimo'.encode("sjis",$text);}

        # ¥Á¥ã¥Ü¤ËÏä·¤«¤±¤ë  --- START
        my $ua = Mojo::UserAgent->new;
        my $name_euc = decode_utf8($user);
        my $ans = $ua->get(Mojo::URL->new("http://www21051ue.sakura.ne.jp/chabo/chatbot_utf8.cgi?name=$user&action=TALK&chat=$text"))->res->body;
        my $txt = '';
        if($ans =~ m|<answer>(.*)</answer>|){
            $txt = decode('UTF-8',$1);
            $twitty->post('statuses/update',{status => $txt},
                      sub{});
        }
        # ¥Á¥ã¥Ü¤ËÏä·¤«¤±¤ë  --- END

#        print encode('utf-8',$text) . "\n";
     },
     on_error => sub {
        my $error = shift;
        warn "ERROR: $error";
        $done->send;
     },
     on_eof   => sub {
        $done->send;
     },
);
$cv->recv;

¥á¥â

https://metacpan.org/pod/Twitter::API