You could make a junction class now using operator overloading:
use strict;
package junction;
use overload 'eq'=>\&compare;
sub new{
my $class = shift;
my $self = {};
%{$self} = map{$_,1} @_;
bless $self,$class;
}
sub compare{
my $self = shift;
my $string = shift;
return exists $self->{$string};
}
package main;
my $foo = junction->new("Visa Card","Visa","Visa Check Card");
foreach my $test ("Visa","Vasdfasd","Taco","Visa Check Card") {
if ($test eq $foo) {
print "$test is a Visa!\n";
}
else {
print "$test is NOT a Visa\n";
}
}
__OUTPUT__
Visa is a Visa!
Vasdfasd is NOT a Visa
Taco is NOT a Visa
Visa Check Card is a Visa!