$ cat pm_1207122_data.tsv
A A1 A2 A3 A4 A5 A6
B B1 B2 B3 B4 B5 B6
C C1 C2 C3 C4 C5 C6
D D1 D2 D3 D4 D5 D6
E E1 E2 E3 E4 E5 E6
F F1 F2 F3 F4 F5 F6
####
#!/usr/bin/env perl -l
use strict;
use warnings;
use autodie;
use Text::CSV;
{
my @words = 'A' .. 'I';
my $tsv_file = 'pm_1207122_data.tsv';
my %tsv_data;
initialise($tsv_file, \%tsv_data);
search($words[rand @words], \%tsv_data) for 1 .. 5;
}
sub initialise {
my ($file, $data) = @_;
open my $fh, '<', $file;
my $csv = Text::CSV::->new({sep_char => "\t"});
while (my $row = $csv->getline($fh)) {
$data->{$row->[0]} = [@$row[1..$#$row]];
}
}
sub search {
my ($find, $data) = @_;
print "$find: ",
exists $data->{$find} ? "@{$data->{$find}}[3,4]" : '';
}
##
##
C: C4 C5
G:
E: E4 E5
D: D4 D5
D: D4 D5
##
##
A: A4 A5
I:
F: F4 F5
H:
E: E4 E5