perl 使用use utf8

jrhapt12:/home/tomcat> cat a1.pl
use Encode;
$phone='18072722237';
open (LOG1 ,"<",'/usr/local/apache-tomcat-7.0.55_8082/logs/catalina.out') or die  $!;
                     while (<LOG1>) {
					#2016-03-09 09:35:12,380 INFO com.zjzc.thirdparty.sms.SMSUtils - Send message:您的验证码为132435,本验证码5分钟内有效。 to phoneNo:18072722237 succeed!
								 
					if ( ($phone) and ($_ =~/$phone/) and ($_ =~/SMSUtils/) ){$str=$_;
					
					next if ($str !~ /验证/);
					print "\$str is $str\n";
					push (@arr1 ,$str);
					}};
					
					close LOG1;
print "\@arr1 is @arr1\n";
print "\n";
jrhapt12:/home/tomcat> perl a1.pl
$str is 2016-05-01 07:34:45,429 INFO com.zjzc.thirdparty.sms.SMSUtils - Send message:您的验证码为344401,本验证码5分钟内有效。 to phoneNo:18072722237 succeed!

@arr1 is 2016-05-01 07:34:45,429 INFO com.zjzc.thirdparty.sms.SMSUtils - Send message:您的验证码为344401,本验证码5分钟内有效。 to phoneNo:18072722237 succeed!


加上use utf8后,再测试:

jrhapt12:/home/tomcat> cat a1.pl
use Encode;
use utf8;
$phone='18072722237';
open (LOG1 ,"<",'/usr/local/apache-tomcat-7.0.55_8082/logs/catalina.out') or die  $!;
                     while (<LOG1>) {
					#2016-03-09 09:35:12,380 INFO com.zjzc.thirdparty.sms.SMSUtils - Send message:您的验证码为132435,本验证码5分钟内有效。 to phoneNo:18072722237 succeed!
								 
					if ( ($phone) and ($_ =~/$phone/) and ($_ =~/SMSUtils/) ){print "\$_ is $_\n";$str=$_;
					
					next if ($str !~ /验证/);
					print "\$str is $str\n";
					push (@arr1 ,$str);
					}};
					
					close LOG1;
print "\@arr1 is @arr1\n";
print "\n";
jrhapt12:/home/tomcat> perl a1.pl
$_ is 2016-05-01 07:34:45,429 INFO com.zjzc.thirdparty.sms.SMSUtils - Send message:您的验证码为344401,本验证码5分钟内有效。 to phoneNo:18072722237 succeed!

@arr1 is 




此时没有输出,需要编码转换:
jrhapt12:/home/tomcat> cat a1.pl 
use utf8;
use Encode;
$phone='18072722237';
open (LOG1 ,"<",'/usr/local/apache-tomcat-7.0.55_8082/logs/catalina.out') or die  $!;
                     while (<LOG1>) {
					#2016-03-09 09:35:12,380 INFO com.zjzc.thirdparty.sms.SMSUtils - Send message:您的验证码为132435,本验证码5分钟内有效。 to phoneNo:18072722237 succeed!
								 
					if ( ($phone) and ($_ =~/$phone/) and ($_ =~/SMSUtils/) ){$str=$_;
					
					my $d=encode_utf8('验证');
					next if ($str !~ /$d/);
					print "\$str is $str\n";
					push (@arr1 ,$str);
					}};
					
					close LOG1;
print "\@arr1 is @arr1\n";
print "\n";
jrhapt12:/home/tomcat> perl a1.pl
$str is 2016-05-01 07:34:45,429 INFO com.zjzc.thirdparty.sms.SMSUtils - Send message:您的验证码为344401,本验证码5分钟内有效。 to phoneNo:18072722237 succeed!

@arr1 is 2016-05-01 07:34:45,429 INFO com.zjzc.thirdparty.sms.SMSUtils - Send message:您的验证码为344401,本验证码5分钟内有效。 to phoneNo:18072722237 succeed!


转载于:https://www.cnblogs.com/zhaoyangjian724/p/6200114.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值