最近在寫 Perl 的程式,發現在正規比對的時候,print 出中文資料會出現 “Wide character in print at” 的 warning 訊息,在 google 找到一篇解決方法:Perl with UTF-8 mode,這篇提出的解決方法有很多種,comment 留言也有提供解法,可以去看一下,還蠻不錯的,那底下是我參考的解法: 只要在表頭加上:
use utf8; binmode(STDIN, ':encoding(utf8)'); binmode(STDOUT, ':encoding(utf8)'); binmode(STDERR, ':encoding(utf8)');完整的檔案如下:
#! /usr/bin/perl -w use Carp; use File::Basename; use LWP::Simple; use WWW::Mechanize; use LWP::UserAgent; use WWW::Shorten '0rz'; use Getopt::Std; use DBI; use utf8; binmode(STDIN, ':encoding(utf8)'); binmode(STDOUT, ':encoding(utf8)'); binmode(STDERR, ':encoding(utf8)'); if($_ =~ m/\s*(.+)<\/a><\/div>\s*/) { $pic_desc = $1; print "desc: " . $1 . " \n" if $verbose; }See also
- 用 cpanm 安裝 Perl 相依性模組
- 2011 OSDC Day 1 筆記
- [網站] 好站連結 (七) Android, javascript, Css, PHP, Perl, FreeBSD, Linux
- [Perl&PHP] time() and Class::Date 日期轉換運算
- [FreeBSD] 取得 FreeBSD CVSUP 的更新狀態
- [MySQL] 利用 perl 單行印出 my.cnf
- [FreeBSD] 利用 perl and shell script 大量建制帳號及 Quota