Mam do porównania 2 pliki
technology.csv
00:78:9E6:76:83;FTTH;6992826854
00:78:9E6:79:FF;NEZ;1221346894
itd...
restarts.csv
00:78:9E6:79:FF;2015/04/21 13:50:05
2C:39:96:52:1E:67;2015/04/21 13:53:21
itd...
z 2 pliku wyciągam tylko te linie gdzie występuje macaddress z pierwszego pliku
ale jak zrobić żeby przepisał z drugiego pliku odpowiednią linię i dołączył z pierwszego
pliku odpowiadającą linię poza MACAddressem oczywiście żeby nie dublować czyli np:
00:78:9E6:79:FF;2015/04/21 13:50:05; NEZ;1221346894
robię to tak:
#!/usr/bin/perl
use strict;
use warnings;
my %UHD;
my $mac_UHD;
my $technology;
my $video_id;
open IN, "technology.csv";
while (<IN>) {
chomp;
($mac_UHD,$technology,$video_id) = split(/;/,$_);
$UHD{$mac_UHD} = $_;
}
my $data;
my $mac;
open IN, "/restarts.csv";
open OUT, ">/wynik_restarts.csv";
while (<IN>) {
chomp;
($mac, $data) = split(/;/,$_);
if (defined $UHD{$mac})
{
print OUT "$mac;$data;$technology,$video_id;\n";
}
}
ale jeżeli tak zrobie to owszem wybierze to co chcę ale zawsze dopisze wartość ostanią z pierwszego pliku.
jak przerobić to w pętli żeby dopisywał wartości z odpowiedniej liniii pierwszego pliku a nie zawsze ostanią wartość z pętli pierwszej?