Algorithm 如何用Perl编写一个算法,从两个匹配的文件中读取数据并打印查询
我在为一项任务编写算法时遇到了困难。我在这里问的每一个问题都让我学到了新的东西,谢谢你 我必须读取一个文本文件(一个表包含一个ID和一个名称),并且我必须将它们与另一个具有相同ID和名称的文件进行匹配 我想用Perl编写一个程序,打印出第一个表与第二个表匹配的结果,并只打印匹配的ID、名称、子ID和日期(第二个表的最后两个字段) 有人能帮我解决这个问题吗 这是我已经尝试过的Algorithm 如何用Perl编写一个算法,从两个匹配的文件中读取数据并打印查询,algorithm,perl,Algorithm,Perl,我在为一项任务编写算法时遇到了困难。我在这里问的每一个问题都让我学到了新的东西,谢谢你 我必须读取一个文本文件(一个表包含一个ID和一个名称),并且我必须将它们与另一个具有相同ID和名称的文件进行匹配 我想用Perl编写一个程序,打印出第一个表与第二个表匹配的结果,并只打印匹配的ID、名称、子ID和日期(第二个表的最后两个字段) 有人能帮我解决这个问题吗 这是我已经尝试过的 #!/bin/env perl use strict; use warnings; use autodie;
#!/bin/env perl
use strict;
use warnings;
use autodie;
use Data::Dumper;
# Create a file handle for the input file
my $fname = 'secondtable.txt';
open(my $fh, '<:encoding(UTF-8)', $fname);
# print header
my $cname = readline $fh;
print $cname;
# # print rows
while ( my $line = readline $fh ) {
chomp $line;
print "$line\n";
}
#/bin/env perl
严格使用;
使用警告;
使用自动模具;
使用数据::转储程序;
#为输入文件创建文件句柄
my$fname='secondtable.txt';
打开(我的$fh,'
---in2---
这是一个不精确的问题描述。如果你更仔细地解释,你更有可能得到有用的答案。示例数据将允许人们为你提供一个有效的解决方案。SO规则要求你解释你尝试过的内容。欢迎使用堆栈溢出。请尽快阅读该页面。从某种程度上说,这听起来很简单您已经解释过了。读取第一个文件并将信息存储在某种哈希表中。读取第二个文件,当标识信息匹配时,打印行。向我们显示您的代码,我们可以提供更多帮助;在此之前,我们无法(或将要)提供更多帮助为您做——我们通常不会从头开始编写代码,但我们肯定会帮助您解决问题。(不要忘记使用严格;使用警告;
)很抱歉,我写评论时正在研究算法。我就是这样尝试的,我设法阅读了第二个表,但不太确定如何做第二个表:#!/bin/env perl```@marko:请通过编辑您的问题来添加信息。评论中的代码很难阅读谢谢您的帮助。
use warnings;
use strict;
open my $file1, '<', 'in1.txt' or die $!;
open my $file2, '<', 'in2.txt' or die $!;
my %data1;
while(<$file1>){
chomp;
next if /^name/;
my @split = split(/\t/);
$data1{$split[0]}{$split[1]}++;
}
my %data2;
while(<$file2>){
chomp;
next if /^name/;
my @split = split(/\t/);
$data2{$split[0]}{$split[1]}++;
print "$split[0]\t$split[1]\n" if $data1{$split[0]}{$split[1]};
}
name id
foo 1
bar 2
baz 3
other 4
name id
bar 1
baz 2
baz 3
other 4