Because hashes support a many-to-one style mapping, this should not be problematic, excepting of course the risk of one-offs in entering the hash values. You could easily just do something like:
my %field_hash = (unvLocalPhone => "Phone",
unvCampusPhone=> "Phone",
unvLocalAddress => "Address",
);
foreach my $field (@ldapFields) {
if (exists $field_hash{$field}) {
$field = $field_hash{$field};
}
}
As for performance, using a hash will be dramatically faster for this section than a series of elsifs would be - think of it as the hash takes a little longer to get the right answer the first time as opposed to possibly having to test every possible value. People much smarter than me have worked hard on making Perl's hash lookups quite fast.
But more importantly, never forget Donald_Knuth's classic quote on the matter: premature optimization is the root of all evil. Wait until you have your code working, then benchmark and profile to find your bottlenecks. When you get that far, look up Devel::NYTProf and Benchmark. |