while () { # loop through all lines of shortnames my @array2 = split /:/; # seperate by those ugly colens created by OSX $finishedusers{$array2[7]} = $array2[0];# Setup keys: "Long Name" => "shortname" } #### open SHORTNAMES, "< $usershortfile" or die "$!"; while () { my ($longname,$shortname) = (split /:/)[7,0]; $finishedusers{$longname} = $shortname; } close SHORTNAMES; #### my %final; # Hash %final while (($fullname, $uid) = each(%final)) { # Loop through hash #### while (($fullname, $uid) = each(%lookup)) { # corrected to use %lookup hash instead. next unless exists $finishedusers{$fullname}; system ("cp '$oldserv/$uid/Documents/*' '$newserv/$finishedusers{$fullname}/Documents/'"); print "Copying Files for $fullname"; }