in reply to Using a lookup table(?)

However you store the attribute value pairs, if there are many of them, I would suggest that you load them into a hash. Something like YAML::Syck or Config::Tiny may help with the storage. The code below may give you ideas about the other half of your question:
use strict; use warnings; my %description_of = ( server1 => "Webserver", server2 => "DMZ Server", server3 => "Oracle Server", ); my $DEFAULT_DESCRIPTION = "Unknown Server"; my @servers = qw(server1 server2 server3 server42); for my $server (@servers) { printf "%s\n", get_description_of( $server ); } exit( 0 ); sub get_description_of { my ($server) = @_; if (defined $description_of{ $server }) { return $description_of{ $server }; } return $DEFAULT_DESCRIPTION; } __END__
which prints:
Webserver DMZ Server Oracle Server Unknown Server
Cheers.