当前位置: 首页 > news >正文

做网站最快的编程语言推广普通话的宣传内容

做网站最快的编程语言,推广普通话的宣传内容,中国软件是外包公司吗,wordpress 总数 函数引言 记录自己跳进的【perl】编程小坑,以己为鉴。 1、eq $str1 "12345\n"; $str2 "12345"; if ($str1 eq $str2) { print "OK" } 上述代码不会打印 OK。特别在读文件 ,匹配字符串时容易出BUG。 案例说明: 有…



引言

记录自己跳进的【perl】编程小坑,以己为鉴。


1、eq

$str1 = "12345\n"; $str2 = "12345";

if ($str1 eq $str2)

{

        print "OK"

}

上述代码不会打印 OK。特别在读文件 ,匹配字符串时容易出BUG。

案例说明:

有一个需求,对于test_A.txt文件的每一行,找出test_B.txt文件中与之相同的内容,打印该行内容,并显示行号。

test_A.txt 以及 test_B.txt 文件中内容:

如果你的代码是这么写的:

open test_A_handle , "<D:\\Perl_WorkSpace\\test_A.txt\n" or die "can't open the file test_A.txt\n";
open test_B_handle , "<D:\\Perl_WorkSpace\\test_B.txt\n" or die "can't open the file test_B.txt\n";$pos = tell(test_B_handle);#获取文件指针位置,因为刚打开文件,所以 $pos为0while (my $str1 = <test_A_handle>)
{seek(test_B_handle,$pos,0);#使文件指针回到文件头my $cnt = 0;while(my $str2 = <test_B_handle>){   $cnt++;if ($str1 eq $str2){print "match string :" . $str1 . " ";print "line num : " . $cnt . "\n";}}
}
close test_A_handle;
close test_B_handle;

那么你得到的结果是:

match string :1111111line num : 5
match string :1111111line num : 9
match string :2222222line num : 6
match string :3333333line num : 7
match string :4444444line num : 8
match string :1234567line num : 1
match string :0000000line num : 2
match string :0978157line num : 3

乍一看没啥毛病,但是细看发现test_A.txt文件中第一行,在test_B.txt文件的第12行也出现了,但是没有匹配到。原因在哪里呢?因为test_B.txt文件的第12行是最后一行,行末没有换行符\n,因为perl认为 "1111111" 不等于 "1111111\n"。那么我们在比较之前用chomp函数将换行符去掉即可解决这个小BUG。代码:

open test_A_handle , "<D:\\Perl_WorkSpace\\test_A.txt\n" or die "can't open the file test_A.txt\n";
open test_B_handle , "<D:\\Perl_WorkSpace\\test_B.txt\n" or die "can't open the file test_B.txt\n";$pos = tell(test_B_handle);#获取文件指针位置,因为刚打开文件,所以 $pos为0while (my $str1 = <test_A_handle>)
{   chomp $str1;seek(test_B_handle,$pos,0);#使文件指针回到文件头my $cnt = 0;while(my $str2 = <test_B_handle>){   chomp $str2;$cnt++;if ($str1 eq $str2){print "match string :" . $str1 . " ";print "line num : " . $cnt . "\n";}}
}
close test_A_handle;
close test_B_handle;

输出:

2、split 

my $str_1 = "ab cd ef gh 12 34 56\n";
my @array_1 = split(' ',$str_1);
print @array_1;
print "1234567890";

上述代码片段输出结果是什么?

abcdefgh1234561234567890

还是

abcdefgh123456

1234567890

split拆分之后,将\n去除了。也即是说$array_1[6] = "56" 而非 “56\n”

http://www.ds6.com.cn/news/28403.html

相关文章:

  • houzz室内设计官网北京网站优化对策
  • 廊坊哪里有做网站建设的如何做好网络宣传工作
  • qq旧版本大全官方下载百度seo公司一路火
  • h5 做的网站 价格怎样制作网页新手自学入门
  • wap微信网站模板怎样在百度上做广告推广
  • 做微商建自己的网站有用吗淘宝seo推广优化
  • 深圳建设网站制作手机百度如何发布广告
  • 一个最简单的产品展示的asp网站应该如何做郑州本地seo顾问
  • 个人做众筹网站合法吗潍坊seo教程
  • 公安局网站建设规划书网络推广工作怎么样
  • 南京网络维护公司郑州seo教程
  • 网站制作职业太原网站开发
  • 网站备案大概多久公司宣传网站制作
  • 有额度的购物app商城电脑优化软件推荐
  • 自己建设网站要多久seo外链工具软件
  • 青岛网站建设seo优化百度seo排名优化软件分类
  • 网络搭建的相关知识拼多多标题关键词优化方法
  • 国人在线做网站杭州seo平台
  • 网站开发拖延交货算诈骗吗平台软件定制开发
  • 百度公司地址宁波优化seo是什么
  • 保山网站制作北京网站优化策略
  • 跨境电商怎么注册店铺附子seo
  • 南京 网站建站视频外链平台
  • 新手自学网站合肥关键词排名提升
  • 泉州网站开发公司什么是网络营销公司
  • 企业为什么要做网站六年级上册数学优化设计答案
  • 老会计手把手教做帐官方网站策划推广方案
  • 怎么查看网站提交百度的度智能建站
  • 重庆建站模板百度号码
  • 山西 网站建设网站恶意点击软件