基本信息
文件名称:perl与生物信息二章.pptx
文件大小:344.88 KB
总页数:42 页
更新时间:2024-08-24
总字数:约2.24千字
文档摘要

第二章列表和数组;列表是标量值的有序集,数组是用于存放列表的变量。每一个列表元素对应相应的数组元素,数组可以利用其索引查看每个元素的标量值。;列表的形式;qw(quotedword)简写;列表操作;当左边列表中的变量数目右边列表中的值数目,那么右边列表中多余的值将被抛弃

($first_name,$last_name)=qw(JackTomBrian);?

返回的结果为:

$first_name=Jack,$last_name=Tom

当左边列表中的变量数目右边列表中的值数目,那么左边列表中剩余的变量将被赋予undef值

($first_name,$middle_name,$last_name)=qw(LarryWall);?

返回的结果为:

$first_name=Larry,$middle_name=Wall,$last_name=undef;互换两个变量的值

#!/usr/bin/perl

usestrict;

usewarnings;

my$first_name=Brian;

my$last_name=Ruan;

printCHANGE-before:\$first_name=$first_name\n;

printCHANGE-before:\$last_name=$last_name\n;

($first_name,$last_name)=($last_name,$first_name);

printCHANGE-after:\$first_name=$first_name\n;

printCHANGE-after:\$last_name=$last_name\n;

问题:与C语言的差别在哪?;数组形式;练习:定义核酸数组;定义核酸数组;#!/usr/bin/perl

usewarnings;

$number=2.71828;

@food;

for($i=0;$i5;$i++){

$food[$i]=$i;

}

print$food[$number+1]\n”

说明:任何求值能得到数字的表达式都可以用作下标;数组赋值方式;@rocks=qw(bedrock$namelava);

#返回的结果为:rocks[0]=bedrock,rocks[1]=$name(注意:不是变量$name的值),rocks[2]=lava“

@city=();@rocks=(bedrock,@city,lava);?

#数组rocks的元素为:bedrock,lava,空列表被去除(隐示声名undef)

@city=(undef);@rocks=(bedrock,@city,lava);?

#数组rocks的元素为:bedrock,undef,lava“

@rocks=(bedrock,undef,lava);

#数组rocks的元素为:bedrock,undef,lava(显示声明undef);数组内插于字符串;特殊的数组索引;数组元素读取;数组切片;pop和push函数;shift和unshift函数;示例;reverse和sort函数;join和split函数;示例;splice函数;几种特殊情况;第二种情况:当@new为空则为删除

例如:splice(@a,2,3),它表示跳过数组@a的前2个元素,然后将剩下数组元素中的前3个元素删除,如果此时还有剩下数组元素,则不进行删除

第三种情况:当length和@new同时省略时

例如:splice(@a,3),它表示跳过数组@a的前3个元素,然后将剩余的所有元素删除;示例;foreach控制结构;默认变量$_;标量和列表上下文;列表上下文中的STDIN;示例;读取蛋白质序列;计算核酸序列中碱基个数;二维数组;数组引用;打印二维数组;#!/usr/bin/perl

@a=([3,4,10],

[2,7,12],

[0,3,4],

[6,5,qqq],

);

foreach$onedimen(@a){

print@$onedimen\n;

}

print\n;

foreach$i(0..$#a){

$b=$a[$i];

print$b\n;

$n=$#{$b};

print$n\n;

foreach$j(0..$n){

printele$i$jis$a[$i][$j]\n;

}

};添加一行新数组;#!/usr/bin/perl

@a=([3,4,