
perl 编程
while(<FILE1>){@v=split;($name1,$address1,$number1,$another1)=@v;$hash{$number1}=[$na...
while(<FILE1>)
{@v=split;
($name1,$address1,$number1,$another1)=@v;
$hash{$number1}=[$name,$address,$number];
while(<FILE2>)
{@array=split;
($name,$address,$number,$another)=@array;
if(exists $hash{$number}){
print FILE3 "@v \n";}}}
目的是把目的是把test1中与test2 中具相同number的记录找出来,输到test3中,只输test1中的记录,test2中的就不管了,为什么得到的永远只有第一条有相同number的记录 展开
{@v=split;
($name1,$address1,$number1,$another1)=@v;
$hash{$number1}=[$name,$address,$number];
while(<FILE2>)
{@array=split;
($name,$address,$number,$another)=@array;
if(exists $hash{$number}){
print FILE3 "@v \n";}}}
目的是把目的是把test1中与test2 中具相同number的记录找出来,输到test3中,只输test1中的记录,test2中的就不管了,为什么得到的永远只有第一条有相同number的记录 展开
3个回答
展开全部
while(<FILE1>)
{@v=split;
($name1,$address1,$number1,$another1)=@v;
$hash{$number1}=[$name1,$address1,$number1];
}
while(<FILE2>)
{@array=split;
($name,$address,$number,$another)=@array;
if(exists $hash{$number}){
print FILE3 "$hash{$number}\n";
}}
{@v=split;
($name1,$address1,$number1,$another1)=@v;
$hash{$number1}=[$name1,$address1,$number1];
}
while(<FILE2>)
{@array=split;
($name,$address,$number,$another)=@array;
if(exists $hash{$number}){
print FILE3 "$hash{$number}\n";
}}
更多追问追答
追问
哦 对 应该是$hash{$number1}=[$name1,$address1,$number1];
print那一行也该是print $hash{$number1}吧?
但是这样也还是不对哦
我的数据是这样的
test1:
a b 123456 c
c d 11111 m
e f 256546 g
test 2:
c f 123456 c
a e 11111 n
b n 11111 l
这样test3中应该是
a b 123456 c
c d 11111 m
你这样得到的是
4行这样的东西:ARRAY(0x187a1a4)
追答
while()
{@v=split/\s/,$_;
$hash{$v[2]}=$_;
}
while()
{@array=split/\s/,$_;
if(exists $hash{$array[2]}){
print FILE3 "$hash{$array[2]}" unless(exists $hash1{$array[2]});
$hash1{$array[2]}=1;
}}
展开全部
print FILE3 "@v \n" ==》@array
追问
这是神马意思?》根本就识别不啊
追答
也就是说number字段在两个文件中不在同一列,可以使用正则匹配啊
while()
{@v=split/\s+/,$_;
for $i(0..$#v)
{
if($v[$i]=~/\d{6,12}/)
{
$hash{$v[$i]}=$_;last;
}
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
if( $hash{$number}){print FILE3 "($name,$address,$number,$another) \n";}}}}
追问
没用,输出还多了一对括号,难看
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询