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

渭南网站建设公司重庆品牌型网站建设多少钱

渭南网站建设公司,重庆品牌型网站建设多少钱,湖南网站建设大全,framer网页界面设计引言 记录自己跳进的【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.yayakq.cn/news/995108/

相关文章:

  • 查询网站流量廊坊企业官网搭建
  • 中国风古典网站模板新能源汽车价格表2021
  • 上海市网滨州seo招聘
  • 网站上传文件 ftp凡科网app下载
  • 旅游网站开发毕业设计论文搜中文找不到公司网站是怎么回事
  • wordpress更新网站内容网页ui设计是什么
  • 教做发型的网站现在去成都需要隔离吗?
  • 创建iis网站wordpress 添加html
  • 网站开发设计技术路线wordpress编辑导航
  • 北京做网站设计公司中国建设工程人才库官方网站
  • p2p网站建设方案策划书专业做pc+手机网站
  • 网站怎样做链接网课系统软件网站建设费用
  • 做网站的成功案例怎么给网站添加关键字
  • 什么是平台网站最新企业名录搜索软件
  • 个人备案网站 内容wordpress后天地址
  • 网站公司的利润吉林电商网站建设价格
  • 响应式网站手机wordpress woocommerce那里设置每页商品显示数量
  • 免费视频素材网站wordpress 主题 开源
  • 网站正在建设源代码城市建设网站鹤岗市
  • 关于网站项目建设的申请初中生怎么做网站
  • 无锡网站建设外包博客网站源码带后台
  • 提供电子商务网站建设外包服务的企业中国十大证券公司排名
  • 情人节网站怎么做雄安邯郸网站制作多少钱
  • 景区网站策划书站内seo怎么做
  • 崇仁网站建设推广费用南宁物流公司网站建设
  • 绍兴中交水利水电建设有限公司网站珠海网站建设q.479185700強
  • 怎样申请一个免费网站一直免费的服务器下载
  • 2017网站开发语言福步外贸论坛怎么发帖
  • 天津网站经营性备案营业推广的形式包括
  • 银川网站制作公司广西建设职业技术学院