1.print @chr_length 输出:1020304050 ;要让每个数字间有间隔,print "@chr_length" 输出:10 20 30 40 50
2.在数组首尾添加和取出元素
push @chr_length,60;
$last_chr=pop @chr_length;
unshift @chr_length,60;
$first_chr=shift @chr_length;
3.注释
单行注释 为在语句的开头用字符#
多行注释
- =pod、 =cut只能在行首。并且=pod前面空一行,=cut后面空一行
- 以=开头,以=cut结尾。
- =后面要紧接一个字符,=cut后面可以不用。
=pod
xxxxx
=cut
4.vi中设置显示行号
:set nu
5.哈希赋值
#哈希赋值
%chr_length=(
'chr1'=>10,
'chr2'=>20
);
$chr_length{'chr3'}=30;
#取值
if(exists $chr_length{'chr3'}){
$chr3=$chr_length{'chr3'};
}else{
print "chr3 not exists\n";
}
@chrs = keys %chr_length;
@lengths = values %chr_length;
#哈希循环
while(($chr,$length)=each %chr_length){
}
undef
未初始化的变量称为undef
将undef当作数字使用时,它会表现的像0;
当作字符串使用时,它会表现的像空字符串。
6.$input=shift @ARGV;
7.常用方法
钻石操作符;
while(<IN>){
}
#!/usr/bin/perl
#命令行参数
$input_file=shift;
#定义变量
%chr_length;
$total_length;
$avg_length;
$max_length_chr;
$output;
#输入
open IN ,$input_file or die "$input_file not exists\n"; #打开句柄失败提醒
while(<IN>){ #循坏读取,直到结尾
chomp; #去除分隔符
($chr,$length)=split(/\t,$_); #提取重要信息
$chr_length{$chr}=$length;
}
#计算 控制流
map{$total_length+=$_;} values %chr_length;
=pod
输出到文件
open OUT,">",$output_file or die "file not exists!";
......
print OUT "......"
=cut
8.变量作用域;
私有(my):仅在当前{}内有效,没有{}时,截止到程序结尾。
全局(our):{}外可以访问。
9.理解函数
#!/usr/bin/perl -w
#调用函数
$total_length=&sum(values %chr_length);
#定义函数
sub sum{
my @length=@_;
my $total_length;
map {$total_length+=$_;} @length;
return $total_length;
}
#!/usr/bin/perl -w
#
my @a=(1,2,3);
my @b=(4,5,6);
&test(\@a,\@b);
sub test{
my ($a_href,$b_href)=@_;
my @a = @$a_href;
my @b = @$b_href;
print "a:@a\n";
print "b:@b\n";
}
#a:1 2 3
#b:4 5 6
10.
特殊变量: $[
特殊变量 $[ 表示数组的第一索引值,一般都为 0 ,如果我们将 $[ 设置为 1,则数组的第一个索引值即为 1,第二个为 2,以此类推。一般情况不建议使用特殊变量 $[,在新版 Perl 中,该变量已废弃。
# 定义数组
@sites = qw(google taobao runoob facebook); #qw/google taobao runoob facebook/均可
print "网站: @sites\n";
# 设置数组的第一个索引为 1
$[ = 1;
#"\"转义后,会输出@sites[1],或者是' ',通过对符号进行反斜杠转义,或者使用单引号而不是双引号 eg:print "\@array"; # "@array" print '@array'; # "@array"
print "\@sites[1]: $sites[1]\n";
print "\@sites[2]: $sites[2]\n";
网站: google taobao runoob facebook
@sites[1]: google
@sites[2]: taobao
本文深入探讨Perl语言的实用编程技巧,包括数组和哈希的操作、变量作用域、函数定义及调用,以及如何处理文件输入输出。文章还介绍了特殊变量的作用,并提供了代码示例帮助理解。

1万+

被折叠的 条评论
为什么被折叠?



