求教一个perl程序题:从文件中读取内容(内容就一排,是一些文字列),统计出连续的文字列

作者&投稿:载康 (若有异议请与网页底部的电邮联系)
perl 编程,读取文件然后修改文件内容的问题~

ify_flag;
While(my $readin=<FH>){
if ($readin 匹配第一个条件) ## 匹配第一个条件,标记一下后,直接跳出循环
elsif ($readin 匹配第二个条件)
elsif ($readin 匹配第三个条件)
else ## 如果不匹配上述三个条件,则原样输出
}
close FH;
if (not defined $not_modify_flag){
print $output; ## 最后输出;
}
else {
print "匹配第一个条件,不做修改"."
";
}
exit(0);

#!/usr/bin/perl -w
die "perl $0
" unless(@ARGV == 1);
open IN,$ARGV[0];
open OUT,">Output.fa";
my $count = 1;
while(){
if($_) { #这个判断存在问题
print ">Leaf_$count
";
print OUT ">Leaf_$count
";
$count++;
}
}
close IN;
close OUT;

将if($_) 这个去掉再试试吧。
或者将这一句修改为 if($_=~/[ATCG]/gi)也可以
因为看你说的输出结果,文件句柄应该是打开了的,否则执行不到wile循环里面来,所以只可能是那一个判断的问题了。

#!/usr/bin/perl -w
use strict;
die "perl $0 <data1>" unless(@ARGV==1);
open (IN,$ARGV[0]) or die "Can't open file $ARGV[0]!\n";
open (OUT,">data2") or die "Can't create file data2\n";
while(<IN>){
chomp;
my @tmp=split /\t/,$_;
for(my $tmpc=1;$tmpc<@tmp;$tmpc++){
if($tmp[$tmpc-1] eq $tmp[$tmpc]){
print OUT "$tmp[$tmpc-1]\@2\t\@\@\@";
$tmpc++;
next;
}
print OUT "\t$tmp[$tmpc-1]";
}
print OUT "\n";
}

perl -lane '$tmp=join "-", @F; $tmp=~s/\b(\S+)-\1/$1\@2 \@\@\@/g; print (join " ", (split /-/, $tmp))' data1>data2


Perl入门教程
一个Perl脚本或程序包含一条或多条语句。这些语句只需直接写在脚本中,而不需要像main()这样的东西作为程序入口。Perl语句以分别结束:print "Hello, world";以星号(#)开始的语句是注释:# This is a comment(这是一条注释)空白字符会被Perl忽略: 1. print 2. "Hello, world" 3. ;……引号里的字符串除外:...

如何运行一个perl程序
首先确定你已经装好了PERL。Windows的话,应该是用Active PERL吧。其次,看你想怎么运行。如果你是用记事本或者UltraEdit 32这样的编辑器写的程序,应该需要在命令行运行。在Win XP下,从开始菜单选择运行,输入cmd,回车,进入命令行界面。然后更改目录到你要运行的程序所在的文件夹(别告诉我你不会用cd...

谁能帮我注释一小段perl程序,尤其是if语句判断的是什么啊,while (<I...
1、open IN, $seq_file || die $!; 这句读文件的,IN是文件句柄的名字,$seq_file指明文件来源, 后面的 || die $!表示 如果前面的open失败 则用 die报告错误,并结束程序, $!在报错的时候内容为实际的出错原因。提示,最好使用3个参数的open函数,比如:open ( IN, '<', $file_name...

如何使用Perl语言在windows下编写图形化窗口程序啊,求大师,最好给个...
perl 的图形有两种玩法, Tk 和 Tkx. Tk 是纯 Perl 的, 但能用的 widget (即那些 button, menu, scrollbar... )比较少; Tkx 则需要你先装有 Tcl\/Tk , 但能用的 widget 比较多. 一个最简单的例子就是 use Tk; # 导入 tk 模组 use strict;my $mw = MainWindow->new; # 创建窗口 ...

用Perl开发CGI 应用程序内容简介
Perl是一种强大的编程语言,本书专注于指导如何利用Perl开发CGI(Common Gateway Interface)应用程序。内容丰富且实用,涵盖了多个关键领域:首先,深入探讨表单和文件处理,让你了解如何有效地接收和处理用户提交的数据。Cookie的使用技巧也不容忽视,如何跟踪用户行为和设置计数器,本书都有详尽的讲解。进一步...

如何系统的学习Perl语言
perl 是一个非常精简的语言,自定义的函数非常少,连min max这样常见的函数都没有,如果你需要使用这样的功能,要么自己写一个函数,要么使用加强版的包,perl的包非常多。下面列出一些,我常用的函数:程序必备: use\/die\/warn\/print\/open\/close\/<>\/ 数学函数:sin\/cos\/log\/abs\/rand\/srand\/sqrt 字...

我想用perl写个程序获取桌面当前操作的软件窗口名称
use Win32::OLE;wmi = Win32::OLE->GetObject("winmgmts:\\\\\\.\\\\root\\\\cimv2");procs = $wmi->ExecQuery("Select * from Win32_Process");foreach $m(in $procs){ print $m->name, "\\n";}

用perl 编写一个脚本,使其invoke一个软件,并自动执行命令
要invokeinstalljammer(一个生成exe文件的软件),执行这个脚本以后InstallJammer可以自动开始执行build的命令,我对perl还不熟悉,实在想不出什么方法了,有没有perl高手指点一下。... 要invoke installjammer (一个生成exe 文件的软件),执行这个脚本以后InstallJammer可以自动开始执行build 的命令,我对perl 还不熟悉,实在想不...

linux下怎么运行perl程序
1、perl解释器基本在所有的linux平台上都是自带的,用户可以通过如下命令判断是否有perl解释器:which perl 2、如果自己的linux系统上没有perl解释器,可以去其官网下载安装。3、在具备perl解释器的情况下,可以参考如下运行步骤:1)、用vim编写test.pl,代码如下:!\/usr\/local\/bin\/perlprint "HellonWorld!

如何用Perl访问SQLite数据库
Debian、 Ubuntu 或者 Linux MintCentOS、 Fedora 或者 RHEL安装后,,你可以检查SQLite驱动可以通过下面的脚本访问到。如果你运行脚本,你应该会看见下面的输出。Perl SQLite 访问示例下面就是Perl访问SQLite的示例。这个Perl脚本会演示下面这些SQLite数据库的常规管理。上面的Perl脚本运行成功后会创建一个叫&...

嘉禾县15931278695: 求教一个perl程序题:从文件中读取内容(内容就一排,是一些文字列),统计出连续的文字列 -
宠胡三七: #!/usr/bin/perl -w use strict; die "perl $0 " unless(@ARGV==1); open (IN,$ARGV[0]) or die "Can't open file $ARGV[0]!\n"; open (OUT,">data2") or die "Can't create file data2\n"; while(){ chomp;my @tmp=split /\t/,$_; for(my $tmpc=1;$...

嘉禾县15931278695: Perl如何读写文件 -
宠胡三七: 在Perl中可以用open或者sysopen函数来打开文件进行操作,这两个函数都需要通过一个文件句柄(即文件指针)来对文件进行读写定位等操作.下面以open函数为例:读:open(文件句柄,"<文件名")/open(文件句柄,"文件名"),...

嘉禾县15931278695: perl如何读入一个.txt文本中的内容,将文本里的内容放到一个数组里 -
宠胡三七: 很简单的,例子代码如下:open(FD,"1.txt"); @lines=<FD>; close(FD);上面的代码之后,就可以使用@lines数组了,比如显示第三行的语句:print $lines[2];

嘉禾县15931278695: perl 读取文件夹下所有txt,并处理数据 -
宠胡三七: 还是昨天的那个程序,假设你的文件分为 1.txt 2.txt 3.txt,这个时候不要包含文件头,即所有的文件都是内容 程序修改为:#$head = <>; while(<>) { @line = split(/,/,$_); $lwfs = $line[7]; $user = join('|',$line[1],$line[2],$line[3],$line[4],$line[6],$line[7]); ...

嘉禾县15931278695: 学习笔记 如何读写Perl文件 -
宠胡三七: 本文和大家重点讨论一下如何读写 Perl 文件,主要包括打开、关闭 Perl 文件,读写Perl 文件,Perl 文件的状态,命令行参数和打开管道六部分内容,希望通过本文的学习你对 对读写Perl 文件有深刻的认识. 读写Perl 文件 一、打开、关闭Perl ...

嘉禾县15931278695: 如何用perl读入一个文件,计算文件中各个单词的出现频率,再输出 -
宠胡三七: 楼上兄弟批评的是.本人是门外汉,第一次回答程序方面的问题,没有经验,还请见谅!其实单词统计的问题 perl的文档中就有很好的实例.作为新手,我也在学习中.希望大家共同交流、进步.while ( /(\b[^\W_\d][\w'-]+\b)/g ) { $seen{$1}++;} 以上语句为实例中给出的单行统计单词方法. my @array = split /[\s \,\!\:\;\?\.\#]/; 这是个笨方法,使用标点来分割单词;但实际应用却可以灵活分出特殊用意的词. foreach (@array) { $words{$_}++ if /^\w/;} 可参考:文档:perlfaq6.htm

嘉禾县15931278695: 如何利用perl脚本,读文件的一行 -
宠胡三七: my $file = "File"; # 将 File 改成你的档案路径. open F, $file or die "Can't open file '$file'for read. $!" ;my $line = <F>; #读一行 close F; print $line; #将读了那行打印出来

嘉禾县15931278695: 一个关于用perl把文件读进hash问题.
宠胡三七: rutter : 你好.很高兴回答你的问题. 由于是html文件,如果直接读取里面的内容是不可行的.但你可以使用perl的正则表达试来进行提取.将取得的数据自动写入hash.(对大数据量或重复性工作),如果只有几行的话,就采用手动输入的方法吧.perl就是为了简化工作.

嘉禾县15931278695: perl 如何打开指定路径下的文件? -
宠胡三七: open(FILE, "D:/ferl.txt"); #打开一个文件句柄 while(<FILE>){ #逐行读取该文件然后显示出来 print "$_\n"; } close(FILE) #关闭文件句柄 在WHILE循环中也可以加入一些正则匹配等代码等等.

嘉禾县15931278695: perl脚本读文件最优方法请教
宠胡三七: 你的代码一下子把所有行都读到@Contant里了,自然耗内存. 这种情况要用while循环一行一行地读,参见下面的改法. my ($filename) = "text.unl"; unless (open (RDH,$filename)) { print "File open failed."; } while (my $line = &lt;RDH&gt;) { push @a, $line if /aaa/; push @b, $line if /bbb/; push @c, $line if /ccc/; } close RDH or die "Cannot close $filename:$!";

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网