91040 100991041 100991042 100991043 100991044 100991045 100991046 100991047 100991048 100991049 100991050 100991051 100991052 100991053 100991054 100991234 1
00991235 100991427 100991428 100991429 100991430 100991431 100991432 100991433 100991434 100991523
5 215 0 0 18026457 10523131 1 0 0 0 0 0 0 0 0
6 226 0 0 17468441 10239837 0 0 0 0 0 0 0 0 0
1 161 0 0 15004024 8841928 0 0 0 0 0 0 0 0 0
142 0 0 17955088 10441777 0 0 0 0 0 0 0 0 0
#################################################3
#!/bin/perl
my $InputFile=@ARGV[0]; #source File Name
my $DataDir=@ARGV[1]; #the Directory for data File save
my $necode=@ARGV[2];
@s;
@m;
my $tmp="";
my $j=0;
die("can not open file \"$inPutFile\"")unless(open(HWSOURCEFILE,$InputFile));
while ($line=
$line=DeleteEndNewLineCharacter($line);
if ($line =~ /^
$line = &GetProperties($line,"measInfoId");
$tmp=$line;
if ($DataDir !~ /\/$/) {
$DataDir=$DataDir."/";
}
#print $DataDir;
#print $line;
}
elsif ($line =~ /^
$line = &GetProperties($line,"endTime");
$line = substr($line,0,index($line,"+"));
$line =~ s/T/ /g;
$line = &strTrim($line);
$endtime=$line;
}
elsif ($line =~ /
$line = &GetProperties($line,"measObjLdn");
#$line = substr($line,0,index($line,"+"));
#$line =~ s/\//\t/g;
$line = &strTrim($line);
$measObjLdn=$line;
}
elsif($line =~ /^
{
my $result2 = (split(">",$line))[1];
$result2 = (split("<",$result2))[0];
$result2 = &strTrim($result2);
$result2 =~ s/ / /g;
$result2 =~ s/NIL//g;
@s=split/\s+/,$result2;
$filename2=$DataDir.$tmp."-measTypes.txt";
print "***".$filename2."***";
open(fhn2,">>$filename2")|| die $!;
unshift(@s,"measObjLdn");
unshift(@s,"endtime");
unshift(@s,"number");
while(@s)
{
$value2=shift(@s);
print fhn2 ("$value2\t");
}
close(fhn2);
}
elsif ($line =~ /^
my $result = (split(">",$line))[1];
$result = (split("<",$result))[0];
$result = &strTrim($result);
$result =~ s/ / /g;
$result =~ s/NIL//g;
#print "[$result]\n";
@m=split/\x20/,$result;
$filename=$DataDir.$tmp."-measResults.txt";
print "***".$filename."***";
open(fhn1,">>$filename")|| die $!;
while(@m)
{
$j++;
$value=shift(@m);
print fhn1 ("$j\t$endtime\t$necode\t$measObjLdn\t$value");
unless(@m)
{
print fhn1 ("\n");
last;
}
}
close(fnn1);
}
elsif ($line =~ /^<\/measInfo/){
$j=0;
}
}
#Get Tags Properties
sub GetProperties {
my($content,$subsybol) = @_;
$content = (split($subsybol,$content))[1];
$content = (split("\"",$content))[1];
$content = (split("\"",$content))[0];
return $content;
}
#delete ^M charterect
sub DeleteEndNewLineCharacter{
my ($content)=@_;
$content=substr($content,0,length($content)-1);
$content=strTrim($content);
return $content;
}
#delete space
sub strTrim {
my ($content)=@_;
$content=~s/^[ ]+|[ ]+$//g;
return $content;
}
¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥
@words = split(/$pattern/, $line);
for ($line =
print ($line);
}
它等价于下列语句:
$line =
$count = 1;
while ($count <= 3) {
print ($line);
$line =
$count++;
}
if (
}
elsif (
}
...
else{
}
1、while循环
while (
}
2、until循环
until (
}
foreach localvar (listexpr) {
statement_block;
}
例:
foreach $word (@words) {
if ($word eq "the") {
print ("found the word 'the'\n");
}
}
注:
(1)此处的循环变量localvar是个局部变量,如果在此之前它已有值,则循环后仍恢复该值。
(2)在循环中改变局部变量,相应的数组变量也会改变,如:
@list = (1, 2, 3, 4, 5);
foreach $temp (@list) {
if ($temp == 2) {
$temp = 20;
}
}
此时@list已变成了(1, 20, 3, 4, 5)。
退出循环为last,与C中的break作用相同;执行下一个循环为next,与C中的continue作用相同;PERL特有的一个命令是redo,其含义是重复此次循环,即循环变量不变,回到循环起始点,但要注意,redo命令在do循环中不起作用。
7、传统的goto label;语句
语法为statement keyword condexpr。其中keyword可为if、unless、while或until,如:
print ("This is zero.\n") if ($var == 0);
print ("This is zero.\n") unless ($var != 0);
print ("Not zero yet.\n") while ($var-- > 0);
print ("Not zero yet.\n") until ($var-- == 0);
虽然条件判断写在后面,但却是先执行的。