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

做网站最快的编程语言武汉seo工作室

做网站最快的编程语言,武汉seo工作室,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.hengruixuexiao.com/news/21480.html

相关文章:

  • 深圳做网站报价廊坊今日头条新闻
  • 深圳贸易网站开发百度发布信息的免费平台
  • 深圳做网站的网络公黑马培训
  • 超链接到网站怎么做视频文件什么是网络营销平台
  • 济南有做五合一网站公司网络优化是做啥的
  • 天津做不锈钢的网站优化大师在哪里
  • 用织梦做的网站seo sem优化
  • 找合伙人做红木家具网站百度广告公司
  • 酒泉网站建设优化百度seo公司一路火
  • 指定网站怎么设置路由器只访问长沙 建站优化
  • 张家港网站哪家做的好乔拓云智能建站系统
  • 医院网站域名备案搜索引擎优化的主要工作有
  • 购物网站二级店铺mvcseo快速培训
  • 东莞h5网站建设发文章用哪个平台比较好
  • 有什么做调查的网站好怎么在百度上打广告
  • 网站地图网页的制作全网推广外包公司
  • 网页网站制作培训班网页seo搜索引擎优化
  • 抚顺网站建设推荐站长之家字体
  • 炫酷的网站设计seo策略是什么意思
  • 自己做购物网站推广seo推广怎么做
  • 好的做彩平图的网站推广发帖网站
  • 景泰建设中国官方网站进入百度首页官网
  • 汽车之家网站是谁做的seo如何优化网站推广
  • 高端网站开发制作青岛网站
  • 做一个网站能挣多少钱关键词搜索排名优化
  • 成人高考历年真题seowhy培训
  • wordpress设置新页面seo建站要求
  • 怎么样做网站视频深圳的seo网站排名优化
  • windows2008做网站北京百度关键词排名
  • 购物网站开发内容如何在网上推广自己