开发日记-20190715 关键词 读书笔记 《Perl语言入门》Day 9
第九章习题
1.建立起一个模式,无论what的值是什么,它都可以匹配三个what的值是什么,它都可以匹配三个what的值是什么,它都可以匹配三个what的内容连在一起的字符串。也就是说,若果what的值是fred,那么你的模式应该匹配fredfredfred;若what的值是fred,那么你的模式应该匹配fredfredfred;若what的值是fred,那么你的模式应该匹配fredfredfred;若what的值为fred|barney,那么你的模式应该匹配fredfredbarney,barneyfredfred,barneybarneybarney或许多其他组合.(提示:你应该在模式测试的开头放上类似mywhat=′fred∣barney′;这样的语句.)/(what='fred|barney';这样的语句.) /(what=′fred∣barney′;这样的语句.)/(what){3}/
2.写个程序来复制并修改指定的文本文件,在副本里,此程序会把出现字符串Fred(大小写不计)的每一处都换成Larry(也就是Manfred Mann换成ManLarry Mann).输入文件名应该在命令行上指定(不询问用户),输出文件名则是本来的文件名加上.out.
my $in = $ARGV[0];
if(! defined $in){die "Usage: $0 filename";
}my $out = $in;
$out =~ $in;
$out =~ s/(\.\w+)?$/.out/;if(! open $in_fh,'<',$in){die "Can't open '$in':$!";
}
if(! open $out_fh,'>',$out){dor "Can't write '$out':$!";
}
while(<$in_fh>){s/Fred/Larry/gi;print $out_fh $_;
}
3.修改前一道程序,把所有的Fred换成Wilma并把所有的Wilnma换成Fred.如果输入的是fred&wilma,那么正确的输出应该是Wilma&Fred.
while(<$in_fh>){chomp;
s/Fred/\n/gi;
s/Wilma/Fred/gi;
s/\n/Wilma/g;
print $out_fh "$_\n";
}不过我想可能有更加方便的方法,s/[(Fred|)|(Wilma|)]/$2$1/,貌似不行,再看看= =
4.附加题:写个程序,把你目前写过的所有程序都加上版权声明,也就是加上一行这样的文字:
Copyright © 20XX by Yours Truly
把它放在"shebang"行之后.你应该直接修改文件内容并且做备份.假设你将在命令行指定待修改文件的名称
$^I = “.bak”;
while(<>){
if(/\A#!/){
KaTeX parse error: Expected 'EOF', got '#' at position 7: _ .= "#̲# Copyright (C)…ARGV里找到
my %do_these;
foreach (@ARGV){
KaTeX parse error: Expected '}', got 'EOF' at end of input: do_these{} = 1;
}
while(<>){
if(/\A#!/)d{
$ .= “## CopyRight © 20XX by Yours Truly\n”;
}
print;
}
开发日记-20190715 关键词 读书笔记 《Perl语言入门》Day 9相关推荐
- 开发日记-20190710 关键词 读书笔记 《Perl语言入门》Day 7
Preface Content 用m//进行匹配 我们用双斜线的写法表示模式,比如/fred/.但事实上,这是m//(pattern match operator,模式匹配操作符)的简写. 但是尖括号 ...
- 开发日记-20190708 关键词 读书笔记 《Perl语言入门》Day 5
Preface 进度两章,看来搞定这本书真的是需要话一些时间的.十天左右吧.怪我没弄实体书呗. Content 我们已见过并用过一些内置的系统函数,像chomp,reverse和print等. 但是, ...
- 开发日记-20190706 关键词 读书笔记 《Perl语言入门》Day 3
Preface 感觉Perl上下文的概念其实挺有意思的,有点像大陆法系和英美法系之间的关系那样扑朔迷离.Perl的感觉在目前给我的感觉是,他更相信人,他认为只要是实际的操作者用的更爽,那这个东西就是最 ...
- 开发日记-20190705 关键词 读书笔记 《Perl语言入门》Day 2
Preface Content 运行程序时,Perl内部的编译器会先载入整个源程序,将之转换成内部使用的bytecode,这是一种Prel在内部用来表示程序语法树的数据结构,然后交给Perl的byte ...
- 开发日记-20190716 关键词 读书笔记 《Perl语言入门》Day 10
文件测试操作符及其意义 文件测试操作符 意义 -r 文件或目录,对目前(有效的)用户或组来说是可读的 -w 文件或目录,对目前(有效的)用户或组来说是可写的 -x 文件或目录,对目前(有效的)用户或组 ...
- 开发日记-20190709 关键词 读书笔记 《Perl语言入门》Day 6
Preface 麻麻,今天Perl进度推进了两章,Linux进度推进了一章,我这下班进度.高起来我自己都吓一跳.早点睡觉吧!还有,用知识武装自己,而不是欲望. Content 什么是正则表达式? 正则 ...
- 开发日记-20190707 关键词 读书笔记 《Perl语言入门》Day 4
Preface 呵,这脸打的真的是啪啪直响,我自己说的话其实我自己是记得最清楚的.今天都已经是第四天了,进度也只到第三章,真的,还是待在公司最有感觉. Content 自己写了一遍第三章的答案,然后对 ...
- 开发日记-20190717 关键词 读书笔记 《Perl语言入门》Day 11
Preface 我在想,是不是有什么东西,我渐渐忽略了自己的想法,我自己到底愿意成为自己所期望的什么样的样子,我所考虑的,是不是应该无视自己内心的那样的无可奈何的,不为人知的孤独感,我迷茫着,自己是不 ...
- 开发日记-20190712 关键词 读书笔记 《Perl语言入门》Day 8
Preface 明天就是Fate大电影上映的时间了,好激动= = Content 列表上下文的m// 在使用split时,模式指定的正是分隔符:分解得到的字段未必就是我们需要的数据.有时候,指定想要留 ...
最新文章
- 未来几年自动驾驶预测(上)
- 谷歌母公司投资成绩:4大机构各有侧重,投资2个马斯克项目
- Fatfs文件系所有函数总结
- 一个端到端模型GraphDR实现多样化的召回
- android点击弹出滑动条,IndicatorSeekBar Android自定义SeekBar,滑动时弹出气泡指示器显示进度...
- 2060 : Minsum Plus(贪心)
- 2018/7/16-纪中某C组题【jzoj4024,jzoj4025,jzoj2136,jzoj2137】
- 使用Spring Boot和MongoDB构建一个反应式应用程序
- linux CentOS7最小化安装环境静默安装Oracle11GR2数据库(安装常用工具_02)
- 如何在Eclipse上使用SVN,安装、提交、拉取代码、解决冲突等操作
- java properties $,如何引用java.util.Properties中的另一个属性?
- web 前端(轮番插件)
- linux系统下怎么测试网口通不通,linux udp端口测试_linux udp端口测试_linux测试端口通不通...
- 使用Freeimage库时报错的解决方法
- 服务器维修工程师个人简历,机械维修工程师个人简历模板精选
- 利用Python使图片完美去除水印,我想试试马赛克的效果∧v∧
- 【CSP】201903-1 小中大
- 全网无损音乐、超清视频免费下!
- nginx简单配置多个域名转向多个tomcat
- 经济预测与决策matlab试题,经济预测与决策技术及MATLAB实现第5章 投入产出预测法.ppt...
热门文章
- 计算机里面照片无法打卡,为什么电脑照片打不开_电脑照片打不开的解决方法...
- php数组如何写入txt文件中_php将数组写入到文件的三种方法
- 王卡为何解封40g显示服务器开拆,腾讯大王卡40G流量用完了怎么办 腾讯大王卡解封以及解封后流量收费介绍...
- python 爬取贝壳网小区名称_利用python爬取贝壳网租房信息
- oracle最大值填充,Oracle sequence值到了最大值的处理
- oracle 监听主机,Oracle 监听
- html字体效果标签,纯CSS模拟fieldset标签效果把文字写在边框上
- PHP的CI框架学习
- Yii框架控制台报错: The id configuration for the Application is required
- 【408预推免复习】操作系统之处理机调度与死锁