use strict; # because we should use warnings; # because we should use autodie; # die if problem reading or writing a file my $base = 'D:/Some/Specific/Folder'; open (QR, '<', $oldqr); for my $file (glob qq($base/ToUpload/Staging/*)) { open FILE,'+<',$file; binmode (FILE); while (my $line = ){ my $firstname = getFN(); my $lastname = getLN(); my $email = getEM(); if ($line =~ //) { my $bdate = fetchBD(); print FILE ' '.$bdate.''; } } } close QR; sub fetchBD { while (my $line = ){ my $fns = index($line,'FirstName'); $fns += 10; my $fne = index($line,' LastName'); my $fnl = $fne - $fns; my $fn = substr($line,$fns,$fnl); my $lns = index($line,'LastName'); $lns += 10; my $lne = index($line,' Email'); my $lnl = $lne - $lns; my $ln = substr($line,$lns,$lnl); my $ems = index($line,' Email '); $ems += 7; my $eme = index($line,' BirthDate'); my $eml = $eme - $ems; my $em = substr($line,$ems,$eml); if ($fn = $firstname) { if ($ln = $lastname) { if ($em = $email) { my $bdates = index($line,' BirthDate '); $bdates += 11; my $bdate = substr($line,$bdates,10); return $bdate; } } } } } sub getFN{ while (my $line = ){ if ($line =~ //) { my $fnse = index($line,''); $fnse += 11; my $fnen = index($line,''); my $fnlo = $fnen - $fnse; my $firstname = substr($line,$fnse,$fnlo); return $firstname; } } } sub getLN{ while (my $line = ){ if ($line =~ //) { my $lnse = index($line,''); $lnse += 6; my $lnen = index($line,''); my $lnlo = $lnen - $lnse; my $lastname = substr($line,$lnse,$lnlo); return $lastname; } } } sub getEM{ while (my $line = ){ if ($line =~ //) { my $emse = index($line,''); $emse += 7; my $emen = index($line,''); my $emlo = $emen - $emse; my $email = substr($line,$emse,$emlo); return $email; } } }