求一段perl代码

作者&投稿:倚国 (若有异议请与网页底部的电邮联系)
请教一段Perl的代码~

@{$gm->{FrameInfo}} 这段是$gm是一个对象或者类(perl的面向对象)FrameInfo是这个类或者对象的属性(实质是函数),$gm->{FrameInfo}就会返回一个值或者一个列表之类的,然后使用"perl的引用(refrence)"把返回的值按照默认数组值的划分符delimiter(默认\s)划分为数组,@{}就是derefrence。然后用一个for循环,将这个数组的值遍历处理。而每次在数组中去的值默认保存在了$_(老地方)中。
not $kf or $_->{nextId} {nextId}又引用并返回该属性的值,该值在比$ckid小的时候就将该对象的引用(相当与对一个对象的指针,应该是C语言之中)赋值非$kf,否则跳出for循环

这种写法在perl中很常见,例如http://zhidao.baidu.com/question/573661250.html?fr=qlquick也是一样的写法

提示是“没有找到文件或目录”

首先要确定Perl文件储存的格式,文件名是hello.pl还是hello.txt,其次是路径,其实这个文件在哪里都不重要,你可以进入那个文件所在的目录,然后再运行:perl hello.pl 或者 perl hello.txt

当然你也可以不进入路径直接运行,如:perl c:\perl\hello.pl
所以说文件放在哪里不重要,其实所有的DOS命令其操作方式都是类似的,明白这点就好了。

open A, "A.txt" or die "Can't open A";
open B, ">B.txt" or die "Can't open B";
my $count=1;
while ( chomp ( my $ra = <A> ) ) {
    $ra =~ /^([a-z]+)_(.)\w+ (.+)$/;
    print B "$1_circuit $1$2_pin${count}_num$_$/" foreach ( split /\s+/, $3 );
    $count++
}
close B;
close A;

还没实测, 敬请试试... =)



下面的程序满足你的要求:

open(F1,'a.txt');
open(F2,'>b.txt');
while ($s=<F1>){
chomp($s);
@a=split(/\s+/,$s);
$h=shift(@a);
$h=$h =~ /^aaa/ ? 'aaai_pin1_num' : 'aaao_pin2_num';
foreach $v (@a){
print F2 "aaa_circuit $h$v\n";
}
}
close(F2);
close(F1);

open F,"F:/1.txt"; #画面上的A文件
while($line=<F>) {
    $count++;
    $line=~/_(\w)pin\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)/;
    @array=($2,$3,$4,$5,$6);
    foreach $i(@array) {print "aaa_circuit aaa$1"."_pin$count"."_num$i
";}
                  }
close F;



用perl语言查找20个质数
找20个质数的PERL程序代码如下:i=2;#开始找的数$n=0;#找到的个数while($n<=20){ $chk=1; for ($j=2;$j<$i;$j++){ $chk=0 if ($i%$j==0); } if ($chk){ print $i," "; $n++; } $i++;}运行结果:2 3 5 7 11 13 17 19 23 29 31 37 4...

写一个perl或者Python代码,实现文件信息提取为矩阵形式
usr\/bin\/perl -w use strict;my %hash;open IN , "a.txt" or die $!;while <IN> { chomp;_=~\/(ENSG.*?)\\t(.*?)(ENSG.*?)\\t(.*?)(ENSG.*?)\\t(.*?)\/;hash{$1}=$2;hash{$3}=$4;hash{$5}=$6;} foreach my $key (sort keys %hash){ print "$hash{$key}\\...

如何用perl获取某一文件所在路径
用perl获取某一文件所在路径,参考代码如下:use Cwd 'abs_path';print abs_path($0)."\\n";man Cwd NAME Cwd - get pathname of current working directory SYNOPSIS use Cwd;my $dir = getcwd;use Cwd 'abs_path';my $abs_path = abs_path($file);...

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

perl语言实现输入一个字符串,将其反序输出到屏幕 麻烦把代码粘贴给我...
!\/usr\/bin\/perl -w use strict;print "请输入字符串:";my $String = <STDIN>;chomp $String;print "Input String:$String\\n";my $RevString = reverse($Seq);print "Output String:$RevString\\n";其中reverse 函数就是将字符串倒序的。

perl 编程中 my $obj = ... 和 my ($obj) = ... 有什么区别?
举个例子:my $a = getdata();print "$a\\n";my ($b) = getdata();print "$b\\n";sub getdata{ return wantarray?(123):456;}这个函数的返回值就好理解了。函数问你想要什么样的值,如果想要array就给你返回(123)这个数组,否则就返回456这个值。所以这段代码的输入分别是456和123。

perl 中 $\/ 代表了什么意思?
将 $\/设为整数、存有整数的标量或可转换成整数的标量这些值的引用时,Perl会尝试读入记录而不是行,最大记录长度就是引用的那个整数。因此这段 代码:local $\/ = \\32768; # or \\"32768", or \\$var_containing_32768open my $fh, $myfile or die $!;local $_ = ;会从 FILE 读取一条不...

利用perl编写个正则表达式,可以将January 26, 2005这类形式的时间识别...
不知道你是否要求把January的大小忽略,我给你写了段代码,可以转化忽略大小写即January,或JAUNUARY或january这种的:请你再自己根据需要修改或调用这段代码,或者把他写成一个函数。!\/usr\/bin\/perl -w use warnings;use strict;my %month=("january","01","february","02","march","03","april...

如何用Perl访问SQLite数据库
由于它的轻量级,自包含和紧凑的设计,所以当你想要集成数据库到你的程序中时,SQLite是一个非常不错的选择。在这篇文章中,我会展示如何用Perl脚本来创建和访问SQLite数据库。我演示的Perl代码片段是完整的,所以你可以很简单地修改并集成到你的项目中。访问SQLite的准备我会使用SQLite DBI Perl驱动来...

PERL中@ARGV是什么定义?可否编辑一段代码
argument:参数 test.pl !\/usr\/bin\/perl use strict;print "@ARGV";exit(0);执行 .\/test.pl a b c d 输出: a b c d

会宁县18582587539: 求一段perl代码 -
荀虽氯芬: open A, "A.txt" or die "Can't open A"; open B, ">B.txt" or die "Can't open B"; my $count=1; while ( chomp ( my $ra = <A> ) ) { $ra =~ /^([a-z]+)_(.)\w+ (.+)$/; print B "$1_circuit $1$2_pin${count}_num$_$/" foreach ( split /\s+/, $3 ); $count++ } close B; close A;还没实测, 敬请试试... =)

会宁县18582587539: 求一段perl程序,处理数据 -
荀虽氯芬: my %LIST; my @arr; my $key; open(FD,'out.txt'); open(FE,'>new.txt'); while(){ s/^\s+|\s+$//g; @arr=split(/\s+/); $key=$arr[0] . "\t" . $arr[1] ."\t" . $arr[2] . "\n"; if (! exists($LIST{$key})){ print FE $key; $LIST{$key}=true; } } close(FE); close(FD);...

会宁县18582587539: 求一段perl或者shell程序,用来计算一个文件中某段字符的长度有多长. -
荀虽氯芬: PERL来做这个很简单,你没有明确输出内容的格式,下面的代码你可能需要调整输出部分: open(FD,'1.txt'); while($s=<FD>){ if ($s =~ /^[>]/){ $s2=$s; $s2 =~ s/[^a-zA-Z]//g; print length($s2)."\t".$s; } } close(FD);上面的代码读出文件的每一行,对不以>开头的行进行处理,替换到26个字母之外的内容,计算长度,输出长度和原始内容.

会宁县18582587539: 求助一下,帮写一段perl 脚本. -
荀虽氯芬: 这是我模拟的简单文件 # 统计每个位点每个碱基出现的频率use strict;use warnings;use Data::Dumper;@ARGV==2 or die;my($inflie,$outfile)=@ARGV;open my $in ,'<',$inflie or die;open my $out ,'>',$outfile or die;while(<$in>){my ($num,$posd)=(...

会宁县18582587539: 用perl取一段文字? -
荀虽氯芬: open LOG,"1.log";open LO,">2.log";while(<LOG>){if($_=~/Updated to revision\s+(.*)\./){print LO "$1\n";}}close LOG;close LO;

会宁县18582587539: 求一个用perl语言写的程序 -
荀虽氯芬: 这个用bioperl来做非常简单,但有一些模块需要你自己安装.这就需要你熟悉cpan上模块的安装.或者参见我空间里bioperl安装的内容.这里直接用到的就是Bio::SeqIO module,但它可能依赖于一些相关模块,所以最好装全bioperl.装好之后...

会宁县18582587539: 求一个perl程序,功能是实现给定列表中数字相加的综合,最好能写一个函数. -
荀虽氯芬: sub sum{ my @array = @_; my $length = @array; for(my $i = 0;$i < $length;$++) {my $sum += $array[i]; } return $sum; }

会宁县18582587539: 求perl代码...比较两个数组 -
荀虽氯芬: 最起码有N种方法,我四年不看perl了,忘了很多,以前水平一个语句就能解决问题.现在只能用最笨的方法两层循环,效率较差.my $k,$i,$j; open (OUTFILE, ">>输出.fasta"); for($i=0;$i<=3;$i++){ $x=$a[$i];for($j=0;$j<=3;$j++){$y=$b[$j];if($x != $y){$c[$k]=$x; $k++;}} } print OUTFILE ("@c\n"); 自己调调程序

会宁县18582587539: 急求一个Perl空心菱形程序! -
荀虽氯芬: #! /perl my $width = 7; print " "x($width-1); print "x\n"; foreach my $i (1..$width-1){ print " "x($width-$i-1)."x"." "x(($i-1)*2+1)."x\n"; } for (my $i = $width-2; $i >= 1;$i--){ print " "x($width-$i-1)."x"." "x(($i-1)*2+1)."x\n"; } print " "x($width-1);print "x\n"; 草草的写了下~~~可以达到效果~~~

会宁县18582587539: 请帮忙写个perl程序代码吧?题目如下 -
荀虽氯芬: #!636f7079e799bee5baa631333335316463/usr/bin/perluse strict;use warnings;use utf8;my %hash=();while(<DATA>){ my ($fru,$col,$score)=split /\s+/; if(!defined $hash{$fru}{score} or $hash{$fru}{score}<$score){ $hash{$fru}{score}=$score; $hash{...

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