Its up to you to decide whether or not its worthwhile putting the data in a database, it may depend on the frequency you run the program, how many searches you do during each run of the program, etc. But it doesn't really take long to read each file into memory every time, so a quick 'n' dirty solution might be to read the file into a hash of hashes of hashes:
my %log_data;
open FH, $file or die "Can't open $file: $!";
while (<FH>) {
my ($net_id, $mdy, $item) = split /\|/;
$log_data{$net_id}{$mdy}{$item} = $_;
}
# Then cycle through data you're searching for
# and save/process it if its in the %log_data array