perl编程

perl编程,第1张

my %data

while(<DATA>)

{

chomp#去掉回车

@m=split#以空格分隔

if(exists $data{$m[0]})#如果已经炊ㄒ?

{

for(1..$#m){

if($data{$m[0]}->[$_-1] ne $m[$_]){#已定义判断后续变量是否存在不存在则添加

$data{$m[0]}->[$_-1] .= "/$m[$_]"

}

}

}

else#未定义直接添加

{

$data{$m[0]}=[@m[1..$#m]]

}

}

for(keys %data)

{

print "$_ @{$data{$_}}\n"

}

__DATA__

a b1 2 3

a b 2 2 5

open(FILE1,"E:/test1.txt")

open(FILE2,"E:/test2.txt")

open(FILE3,"+>","E:/test3.txt")

@array=<FILE1>如果test2里面只是一行一个号码的话这样是可以的

for $i(0..$#array)#如果不是的话要进行信息的提取

{

$m=chomp($array[$_])

@v=split(" ",$m)

$hash{$v[??]}=$i

}

while(<FILE2>)

{@v=split

($name,$address,$number,$another)=@v

if(exists $hash{$name})#可能你是这个意思吧将两个记录信息都添加到文件

{

print FILE3 "@v \n$array[$hash[$name]]\n"

}

}

#!usr/bin/perl

open A, "<A.txt" or die ""

open B, "<B.txt" or die ""

open C, ">C.txt" or die ""

my %a

while(<A>){

chomp($_)#去掉回车

my @aArr = split

$a{$aArr[0]} = $_

}

while(<B>){

chomp($_)#去掉回车

my @bArr = split

if(exists $a{$bArr[0]}){

print C $a{$bArr[0]}." ".$bArr[1]

}

}

close A

close B

close C

system(pause)

其中A.txt为第一个文件,B.txt为第二个文件,C.txt为最终生成的,也是所要文件。

不知是否符合楼主要求。

这是对一个内存有行星名称星座亮度等内容的文件进行编辑的程序。

第一段是用来查询一些名称对应亮度的。第二段是统计同一星座星数的,可以比较容易改成调用子程序的。第三段是对文件编辑后存入文件。不知道合不合要求

#!/usr/bin/perl -w

use strict

open F, "star25.txt" or die "Can't open file"

my @lines = <F>

close F

chomp @lines

s/#.*// foreach @lines

my (%sname, %spectrum, @fields)

foreach (grep !/^$/, @lines) {

@fields = split /:/, $_

next if @fields <6

$sname{$fields[0]} = $fields[1]

$spectrum{$fields[0]} = $fields[5]

}

print exists $sname{$_} ?

"$_: Scientific name is $sname{$_}, Spectrum is $spectrum{$_}\n" :

"$_: Not find!\n"

foreach ('Pole star', 'Castor', 'Altair', 'Hadar')

###################

my $c

foreach $c ('Ori', 'Cen', 'Cru') {

print "Number of starts in $c is ",

scalar(grep {$_ eq $c} map ((split / /, $_)[1], values %sname)),

"\n"

}

###################

my %Nspec

$Nspec{substr $_, 0, 1}++ foreach values %spectrum

open F, ">OBAFGKM.txt" or die "Can't open file for write."

print F "$_:$Nspec{$_}\n" foreach keys %Nspec

close F

1


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8041306.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-12
下一篇 2023-04-12

发表评论

登录后才能评论

评论列表(0条)

保存