电子科技大学Perl语言编程各章课后作业提示
- 格式:doc
- 大小:60.50 KB
- 文档页数:5
Perl程序设计课程考核院系部门:学生专业:学生学号:学生姓名:2012年1月课程大作业内容第一题:请问Bioperl怎样安装和配置,请结合文字图表概述Bioperl 的安装、配置与测试,并简述该过程中出现问题解决经历(10分)。
一、安装过程:Bioperl的安装(1):安装好active perl 。
(2)、打开ppm,得到如下界面:3:,选择Edit >> Preferences。
得到如下界面:4:在Preferences添加下面的站点Repositories to addName perl perlBioPerl-RegularDIST DIST ReleasesBioPerl-Rel DIST/RC DIST/RCeaseCandidatesKobes:选择View >> All Packages;6:在搜索框输入bioperl得到如下界面:7:,选择最新版本,右键安装(需要安装:bioperl;bioperl-db;bioperl-network;bioperl-run)。
8:查看安装是否成功:查看目录Perl\lib\Bio中是否存在文件,存在则表明安装成功二:测试测试代码:建立一个PL文件:写入以下内容,然后双击文件,会在同目录下生成一个文件use Bio::Seq;use Bio::SeqIO;# create a sequence object of some DNAmy $seq = Bio::Seq->new(-id => 'testseq', -seq => 'CATGTAGATAG');# print out some details about itprint "seq is ", $seq->length, " bases long\n";print "revcom seq is ", $seq->revcom->seq, "\n";# write it to a file in Fasta formatmy $out = Bio::SeqIO->new(-file => '>', -format => 'Fasta'); $out->write_seq($seq);双击,得到或者在命令处理程序中:输入:C:\Perl>perldoc Bio::Biblio 得到如下:三、简述该过程中出现问题解决经历第二题:结合图形和程序回答下面问题1、编程实现一个DNA序列文件的酶切位点的分析(包括酶切位点统计、酶切位点的标记和计数,以及可视化输出等,不准用模式匹配知识)(10分)。
Perl语言入门(第四版)习题答案《Perl语言入门习题答案》2.12 练习1、写一个程序,计算半径为12.5的圆的周长。
圆周长等于2π(π约为3.1415926)乘以半径。
答案为78.5。
-----------------------/home/confish/perl/girth#!/usr/bin/perl -w#this program calculate a circle's girth#confish@ubuntu7.10$r=12.5;$g=12.5*2*3.1415;print "the girth of the circle is $g\n";-----------------------/home/confish/perl/girth2、修改上述程序,用户可以在程序运行时输入半径。
如果,用户输入12.5,则应得到和上题一样的结果。
-----------------------/home/confish/perl/girthpro #!/usr/bin/perl -w#a better one to calculate girth#confish@ubuntu7.10print"enter the radius of the circle\n";chomp($r=<STDIN>);if($r>0){print"the girth of the circle is".$r*2*3.1415."\n";}else{print"nonavailable!\n";}-----------------------/home/confish/perl/girthpro3、修改上述程序,当用户输入小于0 的数字时,程序输出的周长为0,而非负数。
-----------------------/home/confish/perl/girthzero #!/usr/bin/perl -w#calculate the girth and print 0 when the radius is lower than 0#confish@ubuntu7.10print"enter the radius of the line\n";chomp($r=<STDIN>);if($r>0){print"the girth of the circle is$r*2*3.1415\n";}else{print"the girth of the circle is 0\n";}-----------------------/home/confish/perl/girthzero1、2、3:(一起实现的)#!/usr/bin/perl -w$pai=3.141592654;print "Please Input Radius:";$r=<STDIN>;if ( $r lt 0 ){print "The circumference is 0\n";}else{$l=$r*2*$pai;printf "The circumference is %.1f\n",$l;}4、写一个程序,用户能输入2 个数字(不在同一行)。
第二章 词法分析2.1 完成下列选择题: (1) 词法分析器的输出结果是 。
a. 单词的种别编码 b. 单词在符号表中的位置 c. 单词的种别编码和自身值 d. 单词自身值 (2) 正规式M1和M2等价是指 。
a. M1和M2的状态数相等 b. M1和M2的有向边条数相等 c. M1和M2所识别的语言集相等 d. M1和M2状态数和有向边条数相等 (3) DFA M(见图2-1)接受的字集为 。
a. 以0开头的二进制数组成的集合 b. 以0结尾的二进制数组成的集合 c. 含奇数个0的二进制数组成的集合 d. 含偶数个0的二进制数组成的集合 【解答】 (1) c (2) c (3) d图2-1 习题的DFA M2.2 什么是扫描器?扫描器的功能是什么? 【解答】 扫描器就是词法分析器,它接受输入的源程序,对源程序进行词法分析并识别出一个个单词符号,其输出结果是单词符号,供语法分析器使用。
通常是把词法分析器作为一个子程序,每当词法分析器需要一个单词符号时就调用这个子程序。
每次调用时,词法分析器就从输入串中识别出一个单词符号交给语法分析器。
2.3 设M=({x,y}, {a,b}, f, x, {y})为一非确定的有限自动机,其中f 定义如下: f(x,a)={x,y} f {x,b}={y} f(y,a)=Φ f{y,b}={x,y} 试构造相应的确定有限自动机M ′。
【解答】 对照自动机的定义M=(S,Σ,f,So,Z),由f 的定义可知f(x,a)、f(y,b)均为多值函数,因此M 是一非确定有限自动机。
先画出NFA M 相应的状态图,如图2-2所示。
图2-2 习题的NFA M用子集法构造状态转换矩阵,如表表2-1 状态转换矩阵1b将转换矩阵中的所有子集重新命名,形成表2-2所示的状态转换矩阵,即得到 M ′=({0,1,2},{a,b},f,0,{1,2}),其状态转换图如图2-3所示。
第四章语句和声明Perl程序由一系列声明和语句组成。
声明可以放在任何可以放语句的地方,但它的主要作用发生在编译时。
大多数声明在运行时是完全透明的。
编译完之后,语句的主序列只执行一次。
1.简单语句statement;一个简单语句就是一个表达式。
每条简单语句都必须以分号结尾,除非它是一个块中的最后一条语句,在这种情况下分号是可选的,但最好还是加上。
虽然eval{ },do{ }和sub{ }这样的操作符看起来像组合语句,但其实不是。
这些操作符只是表达式里的项,因此如果要把它们用作语句中的最后一个项,则需要一个明确的分号结束。
任何简单语句的后面都允许跟一个简单的修饰词,紧接着是结束的分号。
可能的修饰词有:statement if EXPR;statement unless EXPR;statement while EXPR;statement until EXPR;statement foreach LIST;if和unless修饰词和它们在英语里面的意思和作用类似:$trash->take("out")if$you_love_me;Shutup()unless$you_want_me_to_leave;while和until修饰词重复计算。
while修饰词将不停地执行表达式,只要表达式的值为真,或者until里只要表达式的值为假则不停地执行表达式:$expression++while–e"$file$expression";kiss("me")until$I_die;foreach修饰词(也可以拼为for)为LIST里的每个元素计算一次,而$_是当前元素的别名:s/java/perl/for@resumes;print"field:$_\n"foreach split/:/,$dataline;2.混合语句在一个作用域里的一系列语句称之为块。
Perl语言入门(第四版)习题答案————————————————————————————————作者:————————————————————————————————日期:《Perl语言入门习题答案》2.12 练习1、写一个程序,计算半径为12.5的圆的周长。
圆周长等于2π(π约为3.1415926)乘以半径。
答案为78.5。
-----------------------/home/confish/perl/girth#!/usr/bin/perl -w#this program calculate a circle's girth#confish@ubuntu7.10$r=12.5;$g=12.5*2*3.1415;print "the girth of the circle is $g\n";-----------------------/home/confish/perl/girth2、修改上述程序,用户可以在程序运行时输入半径。
如果,用户输入12.5,则应得到和上题一样的结果。
-----------------------/home/confish/perl/girthpro#!/usr/bin/perl -w#a better one to calculate girth#confish@ubuntu7.10print"enter the radius of the circle\n";chomp($r=<STDIN>);if($r>0){print"the girth of the circle is ".$r*2*3.1415."\n";}else{print"nonavailable!\n";}-----------------------/home/confish/perl/girthpro3、修改上述程序,当用户输入小于0 的数字时,程序输出的周长为0,而非负数。
第一章编译程序概述1.1什么是编译程序编译程序是现代计算机系统的基本组成部分之一,而且多 数计算机系统都含有不止一个高级语言的编译程序。
对有些高 级语言甚至配置了几个不同性能的编译程序。
1.2编译过程概述和编译程序的结构编译程序完成从源程序到目标程序的翻译工作,是一个复 杂的整体的过程。
从概念上来讲,一个编译程序的整个工作过 程是划分成阶段进行的,每个阶段将源程序的一种表示形式转 换成另一种表示形式,各个阶段进行的操作在逻辑上是紧密连 接在一起的。
一般一个编译过程划分成词法分析、语法分析、 语义分析、中间代码生成,代码优化和目标代码生成六个阶段,这是一种典型的划分方法。
事实上,某些阶段可能组合在一起, 这些阶段间的源程序的中间表示形式就没必要构造岀来了。
我 们将分别介绍各阶段的任务。
另外两个重要的工作:表格管理 和岀错处理与上述六个阶段都有联系。
编译过程中源程序的各 种信息被保留在种种不同的表格里,编译各阶段的工作都涉及 到构造、查找或更新有关的表格,因此需要有表格管理的工作; 如果编译过程中发现源程序有错误,编译程序应报告错误的性 质和错误发生的地点,并且将错误所造成的影响限制在尽可能 小的范围内,使得源程序的其余部分能继续被编译下去,有些 编译程序还能自动校正错误, 这些工作称之为岀错处理。
图1.3表示了编译的各个阶段。
图1.3编译的各个阶段它不生成目标代码,它每遇到一个语句,就要对这个语句进行 分析以决定语句的含义,执行相应的动作。
右面的图示意了它 的工作机理第二章:PL/O 编译程序问答第1题 PL/0语言允许过程嵌套定义和递归调用,试问 它的编译程序如何解决运行时的存储管理。
答:PL/0语言允许过程嵌套定义和递归调用,它的编译程序在运行时采用了栈式动态存储管理。
(数组CODE 存放的只读目 标程序,它在运行时不改变。
)运行时的数据区S 是由解释程序 定义的一维整型数组,解释执行时对数据空间S 的管理遵循后进先岀规则,当每个过程(包括主程序)被调用时,才分配数据 空间,退出过程时,则所分配的数据空间被释放。
第一章1.解答:程序设计语言:程序设计语言是遵守一定规范的、描述“计算”(Computing)过程的形式语言。
一般可以划分为低级语言和高级语言两大类。
低级语言是面向机器的语言,它是为特定的计算机系统设计的语言,机器指令、汇编语言是低级语言。
高级语言是与具体计算机无关的“通用”语言,它更接近于人类的自然语言和数学表示,例如FORTRAN、Pascal、C等等我们熟悉的语言是高级语言。
语言处理程序:由于目前的计算机只能理解和执行机器语言,因此必须有一个程序将用程序设计语言书写的程序等价(执行效果完全一致)地转换为计算机能直接执行的形式,完成这一工作的程序称为“语言处理程序”。
它一般可分为解释程序和翻译程序两大类。
翻译程序:翻译程序(Translator)是一种语言处理程序,它将输入的用程序设计语言书写的程序(称为源程序)转换为等价的用另一种语言书写的程序(称为目标程序)。
若源语言是汇编语言,目标程序是机器语言,称这种翻译程序为汇编程序。
若源语言是高级语言,目标程序是低级语言,称这种翻译程序为编译程序。
解释程序:解释程序(Interpreter)是一种语言处理程序,它对源程序逐个语句地进行分析,根据每个语句的含义执行语句指定的功能。
2.解答:编译程序的总框图见图1.2。
其中词法分析器,又称扫描器,它接受输入的源程序,对源程序进行词法分析,识别出一个个的单词符号,其输出结果是单词符号。
语法分析器,对单词符号串进行语法分析(根据语法规则进行推导或归约),识别出程序中的各类语法单位,最终判断输入串是否构成语法上正确的“程序”。
语义分析及中间代码产生器,按照语义规则对语法分析器归约出(或推导出)的语法单位进行语义分析并把它们翻译成一定形式的中间代码。
编译程序可以根据不同的需要选择不同的中间代码形式,有的编译程序甚至没有中间代码形式,而直接生成目标代码。
优化器对中间代码进行优化处理。
一般最初生成的中间代码执行效率都比较低,因此要做中间代码的优化,其过程实际上是对中间代码进行等价替换,使程序在执行时能更快,并占用更小的空间。
第一章编译程序概述1.1什么是编译程序编译程序是现代计算机系统的基本组成部分之一,而且多 数计算机系统都含有不止一个高级语言的编译程序。
对有些高 级语言甚至配置了几个不同性能的编译程序。
1.2编译过程概述和编译程序的结构编译程序完成从源程序到目标程序的翻译工作,是一个复 杂的整体的过程。
从概念上来讲,一个编译程序的整个工作过 程是划分成阶段进行的,每个阶段将源程序的一种表示形式转 换成另一种表示形式,各个阶段进行的操作在逻辑上是紧密连 接在一起的。
一般一个编译过程划分成词法分析、语法分析、 语义分析、中间代码生成,代码优化和目标代码生成六个阶段,这是一种典型的划分方法。
事实上,某些阶段可能组合在一起, 这些阶段间的源程序的中间表示形式就没必要构造岀来了。
我 们将分别介绍各阶段的任务。
另外两个重要的工作:表格管理 和岀错处理与上述六个阶段都有联系。
编译过程中源程序的各 种信息被保留在种种不同的表格里,编译各阶段的工作都涉及 到构造、查找或更新有关的表格,因此需要有表格管理的工作; 如果编译过程中发现源程序有错误,编译程序应报告错误的性 质和错误发生的地点,并且将错误所造成的影响限制在尽可能 小的范围内,使得源程序的其余部分能继续被编译下去,有些 编译程序还能自动校正错误, 这些工作称之为岀错处理。
图1.3表示了编译的各个阶段。
图1.3编译的各个阶段它不生成目标代码,它每遇到一个语句,就要对这个语句进行 分析以决定语句的含义,执行相应的动作。
右面的图示意了它 的工作机理第二章:PL/O 编译程序问答第1题 PL/0语言允许过程嵌套定义和递归调用,试问 它的编译程序如何解决运行时的存储管理。
答:PL/0语言允许过程嵌套定义和递归调用,它的编译程序在运行时采用了栈式动态存储管理。
(数组CODE 存放的只读目 标程序,它在运行时不改变。
)运行时的数据区S 是由解释程序 定义的一维整型数组,解释执行时对数据空间S 的管理遵循后进先岀规则,当每个过程(包括主程序)被调用时,才分配数据 空间,退出过程时,则所分配的数据空间被释放。
电子科技大学20春《计算机编译原理》在线作业3.doc1.若a为终结符,则A→α?aβ为()项目。
A.归约B.移进C.接受D.待约【参考答案】: B2.LR(K)方法是()。
A.从左到右分析,每次走K步的一种编译方法B.从左到右分析,共经过K 步的一种编译方法C.从左到右分析,每次向前预测K步的一种编译方法D.从左到右分析,每次向貌似句柄的符号串后看K个输入符号的一种编译方法【参考答案】: D3.代码优化的目的是加快()的执行速度。
A.编译程序B.目标程序C.源程序D.编译程序和目标程序E.解释程序【参考答案】: B4.正规式M1和M2等价是指()。
A.M1和M2的状态数相等B.M1和M2的有向边条数相等C.M1和M2所识别的语言集相等D.M1和M2状态数和有向边条数相等【参考答案】: C5.符号表是否合理则影响()的效率。
A.编译程序B.目标程序C.源程序D.编译程序和目标程序E.解释程序【参考答案】: A6.采用自上而下分析,必须()。
A.消除左递归B.消除右递归C.消除回溯D.提取公共左因子【参考答案】: C7.语法分析常用的方法有()①自顶向下②自底向上③自左向右④自右向左A.①②③④B.①②C.③④D.①②③【参考答案】: B8.设a、b、c是文法的终结符,且满足优先关系ab和bc,则()。
A.必有acB.必有caC.必有baD.a~c都不一定成立【参考答案】: D9.描述一个语言的文法是。
A.唯一的B.不唯一的C.可能唯一D.可能不唯一【参考答案】: B10.在规范归约中,用()来刻画可归约串。
A.直接短语B.句柄C.最左素短语D.素短语【参考答案】: B11.Chomsky 定义的四种形式语言文法中,0型文法又称为()文法。
A.短语结构文法B.前后文无关文法C.前后文有关文法D.正规文法 E.图灵机 F.有限自动机G.下推自动机【参考答案】: A12.同心集合并有可能产生新的()冲突A.归约B.“移进”/“移进”C.“移进”/“归约”D.“归约”/“归约”。
附录各章课后作业提示第一章2. say输出时默认换行(say Just like "print", but implicitly appends a newline.)。
如果看不出来,请分别选中两个脚本中的say与print一词,然后Ctrl+Shift+H,并查看文档。
3. Linux上可用:perl -e 'print "Hello, Strawberry Perl!\n";'Windows上可用:perl -e "print \"Hello, Strawberry Perl!\n\";"4. 假设日志文件名为error.log,且目前已在该文件所在目录,那么可以使用以下命令查看最近的100行日志信息:tail -100 error.log5. 假设在Linux系统Shell中已转到Chapter01文件夹里了。
输入:diff -u muscle skin | sort > venn,打开生成的结果文件venn,首先是在肌肉与皮肤都有的多肽(443条),中间+开头的多肽是只见于皮肤的(670条),最后-开头的多肽只见于肌肉(704条)。
6. 假设在Linux系统Shell中已转到Chapter01文件夹里了。
(1)先解压laf.tgz和update.tgz。
tar –xf laf.tgztar –xf update.tgz(2)生成laf和update文件夹里的文献列表ls ./laf > lafiles ls ./update updatefiles(3)比较lafiles与updatefiles的差异diff -u updatefiles lafiles | sort > diffiles打开diffiles文件,首先罗列的是laf.tgz中已被处理并已更新的文献(68篇),接着以+开头的文件就是laf.tgz中尚未处理的文献(214个)。
第二章2. 假设在Linux系统Shell中已转到Chapter02文件夹里了。
(1)解压缩all_mimodb_peptide.gz文件gzip -d all_mimodb_peptide.gz (17427条)(2)找出所有出现且仅出现过一次的多肽sort < all_mimodb_peptides | uniq -u > appear_only_once (15687条)(3)找出所有出现过多次的多肽sort < all_mimodb_peptides | uniq -d > appear_more_times (672条)(4)出现多次的仅收录一条,建立非冗余的多肽数据集sort < all_mimodb_peptides | uniq > nonredundant (16359条)3. 办法之一#!D:\Perl\perl\bin\perl.exemy $comment= '>gi|224589802:c2182439-2181009 Homo sapiens chromosome 11, GRCh37.p10 Primary Assembly';my $insulin= " AGCCCTCCAGGACAGGCTGCATCAGAAGAGGCCATCAAGCAGGTCTGTTCCAAGGGCCTTTGCGTCAGGT GGGCTCAGGATTCCAGGGTGGCTGGACCCCAGGCCCCAGCTCTGCAGCAGGGAGGACGTGGCTGGGCTCG TGAAGCATGTGGGGGTGAGCCCAGGGGCCCCAAGGCAGGGCACCTGGCCTTCAGCCTGCCTCAGCCCTGC CTGTCTCCCAGATCACTGTCCTTCTGCCATGGCCCTGTGGATGCGCCTCCTGCCCCTGCTGGCGCTGCTG GCCCTCTGGGGACCTGACCCAGCCGCAGCCTTTGTGAACCAACACCTGTGCGGCTCACACCTGGTGGAAG CTCTCTACCTAGTGTGCGGGGAACGAGGCTTCTTCTACACACCCAAGACCCGCCGGGAGGCAGAGGACCT GCAGGGTGAGCCAACTGCCCATTGCTGCCCCTGGCCGCCCCCAGCCACCCCCTGCTCCTGGCGCTCCCAC CCAGCATGGGCAGAAGGGGGCAGGAGGCTGCCACCCAGCAGGGGGTCAGGTGCACTTTTTTAAAAAGAAG TTCTCTTGGTCACGTCCTAAAAGTGACCAGCTCCCTGTGGCCCAGTCAGAATCTCAGCCTGAGGACGGTG TTGGCTTCGGCAGCCCCGAGATACATCAGAGGGTGGGCACGCTCCTCCCTCCACTCGCCCCTCAAACAAA TGCCCCGCAGCCCATTTCTCCACCCTCATTTGATGACCGCAGATTCAAGTGTTTTGTTAAGTAAAGTCCT GGGTGACCTGGGGTCACAGGGTGCCCCACGCTGCCTGCCTCTGGGCGAACACCCCATCACGCCCGGAGGA GGGCGTGGCTGCCTGCCTGAGTGGGCCAGACCCCTGTCGCCAGGCCTCACGGCAGCTCCATAGTCAGGAG ATGGGGAAGATGCTGGGGACAGGCCCTGGGGAGAAGTACTGGGATCACCTGTTCAGGCTCCCACTGTGAC GCTGCCCCGGGGCGGGGGAAGGAGGTGGGACATGTGGGCGTTGGGGCCTGTAGGTCCACACCCAGTGTGG GTGACCCTCCCTCTAACCTGGGTCCAGCCCGGCTGGAGATGGGTGGGAGTGCGACCTAGGGCTGGCGGGC AGGCGGGCACTGTGTCTCCCTGACTGTGTCCTCCTGTGTCCCTCTGCCTCGCCGCTGTTCCGGAACCTGC TCTGCGCGGCACGTCCTGGCAGTGGGGCAGGTGGAGCTGGGCGGGGGCCCTGGTGCAGGCAGCCTGCAGC CCTTGGCCCTGGAGGGGTCCCTGCAGAAGCGTGGCATTGTGGAACAATGCTGTACCAGCATCTGCTCCCT CTACCAGCTGGAGAACTACTGCAACTAGACGCAGCCCGCAGGCAGCCCCACACCCGCCGCCTCCTGCACC GAGAGAGATGGAATAAAGCCCTTGAACCAGC";my @reverseq= reverse (split //, $insulin);foreach my $base(@reverseq){if ($base eq 'T'){$base= 'A'; next; };if ($base eq 'A'){$base= 'T'; next; };if ($base eq 'C'){$base= 'G'; next; }if ($base eq 'G'){$base= 'C'; next; }}print "$comment\n";print @reverseq;4. 办法之一#!D:\Perl\perl\bin\perl.exe#hash for amino acid code convertingmy %AA123= (A => 'Ala', V => 'Val', L => 'Leu', I => 'Ile',P => 'Pro', W => 'Trp', F => 'Phe', M => 'Met',G => 'Gly', S => 'Ser', T => 'Thr', Y => 'Tyr',C => 'Cys', N => 'Asn', Q => 'Gln', K => 'Lys',R => 'Arg', H => 'His', D => 'Asp', E => 'Glu',);my %AA321= reverse %AA123;my $comment_H= ">metuximab Heavy chain";my $comment_L= ">metuximab Light chain";my $heavy= <<'HEAVY';Met Asn Phe Gly Leu Ser Trp Val Phe Ile Val Ile Leu Leu Lys Gly Val Gln Ser Glu Val Lys Leu Glu Glu Ser Gly Gly Gly Leu Val Gln Pro Gly Gly Ser Met Lys Leu Ser Cys Val Ala Ser Gly Phe Thr Phe Ser Asp Ala Trp Met Asp Trp Val Arg Gln Ser Pro Glu Lys Gly Leu Glu Trp Val Ala Glu Ile Arg Ser Ala Asn Asn His Ala Pro Tyr Tyr Tyr Thr Glu Ser Val Lys Gly Arg Phe Thr Ile Ser Arg Asp Asp Ser Lys Ser Ile Ile Tyr Leu Gln Met Asn Asn Leu Arg Ala Glu Asp Thr Gly Ile Tyr Tyr Cys Thr Arg Asp Ser Thr Ala Thr His Trp Gly Gln Gly Thr Leu Val Thr Val Ser Ser Ala Ser Thr Thr Ala Pro Ser ValHEAVYmy $light= <<'LIGHT';Met Asp Ser His Thr Gln Val Phe Ile Phe Leu Leu Leu Cys Val Ser Gly Ala His Gly Ser Ile Val Met Thr Gln Thr Pro Thr Phe Leu Val Val Ser Ala Gly Asp Arg Val Thr Ile Thr Cys Lys Ala Ser Gln Ser Val Ile Asn Asp Val Ala Trp Tyr Gln Gln Lys Pro Gly Gln Ser Pro Lys Leu Leu Ile Phe Tyr Ala Ser Asn Arg Asn Thr Gly Val Pro Asp Arg Phe Thr Gly Ser Gly Tyr Gly Thr Asp Phe Thr Phe Thr Ile Ser Thr Val Gln Ala Glu Asp Leu Ala Val Tyr Phe Cys Gln Gln Asp Tyr Ser Pro Pro Phe Thr Phe Gly Ser Gly Thr Lys Leu Glu Ile Lys Arg Lys Ser Thr Ala Pro Thr Val Ser LIGHTmy @harray= split /\s/, $heavy;my @larray= split /\s/, $light;foreach my $residue(@harray){$residue= $AA321{$residue};}foreach my $residue(@larray){$residue= $AA321{$residue};}print "$comment_H\n",@harray,"\n\n";print "$comment_L\n",@larray;第三章2.提示1 - 1 # 1 minus 1 is 0, would convert to string "0", so false.0.0 # equals 0, would convert to string "0", so false."0.0" # is the string "0.0", neither "" nor "0", so true!"0" # is the string "0", so false."" # is a null string, so false." " # is a whitespace, not null string, so true."0.0" + 0 # would become the number 0 (coerced by the +), so false. \$i # is a reference to $i, so true, even if $i is false, null, 0. undef() # is a function returning the undefined value, so false.3. 办法之一#!D:\Perl\perl\bin\perl.exemy @aa= qw(C D E F G H I K L M N P Q R S T V W Y A);my @pep= qw(A A A A A A A A A);print foreach @pep, "\n";for ( my $i= 0; $i<= 8; $i++ ) {foreach my $res(@aa){$pep[$i] = $res;if ($res ne 'A'){print foreach @pep;}print "\n";}}5、(1)只见于muscle :grep -v -f skin muscle >muscle.txt 结果见于目录下muscle.txt (2)只见于skin :grep -v -f muscle skin >skin.txt 结果见于目录下skin.txt(3)都有:grep -Ff muscle skin >skin-muscle.txt 结果见于目录下skin-muscle.txt 6、diff -y laf update >laf-update.xls 结果见于目录下laf-update.xls。