
use strict
open IN,"txt" or die
while (<IN>){
chomp
my @array = split /\s+/
my $gene = shift @array
foreach my $m (@array){
print "$gene\t$m\n"
}
}
close (IN)
经过测试没问题
#!/usr/bin/perl -wuse strict #使用 strict 校验语法.
my $file=shift #读取执行程序时的第一个参数作为变量 $file. 这里应该是指文件名.
open IN,$file
while(my $line=<IN>){ #打开并读取文件的内容
chomp($line) #去掉每一行结尾的换行符.
my $t2=$line=~tr/ATGC/TACG/ #统计这一行中ATGC的次数 他程序有问题. 应该是 $t2=($line=~s/ATGC/TACG/g)
print $t2,"\n" #输出次数结果
}
试了一下. 他这个程序有问题. 是统计每一行的ATGC的出现次数. 而且不对, 不应该用tr,, 应该用s.
我改了一下.
#!/usr/bin/perl -wmy $file=shift
open IN,$file
my @line=<IN> #读取整个文件到数组
my $lines=join("-",@line) #把数组合并成一个字符串
my $t2=($lines=~s/ATGC/TACG/g) #在这个大字符串中统计ATGC出现的次数
print "$t2\n"
我这个是统计整个文件中ATGC出现的次数的.
在我的下载器上运行了一下.. 貌似没问题.
root@Nas:~# cat a.txtATGC
111ATGC222
111222ATGC ATGC
TACG
root@Nas:~#
root@Nas:~# ./test.pl a.txt
4
root@Nas:~#
哎,你什么要求都没有,写个什么程序给你嘛。PERL来写的“HELLO , WOLRD!”程序会吗,下面这样就可以:
#!/usr/bin/perl
print "Hello, World!\n"
偏要50行的话,你可以把最后一句复制了粘贴50行。
PERL可以写各种各样的程序,许多BBS论坛都是PERL写的,可以下载了参考,你在百度里面输入“PERL源码”就可以找到许多。
我写的下载“百家讲坛”的程序:
http://hi.baidu.com/134931/blog/item/d95c7b6345274c630c33fa38.html
我写的字段下载邮件并转发的程序:
http://hi.baidu.com/134931/blog/item/24fc92264e9e0c158a82a1de.html
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)