open (TERMFILE, $ARGV[0]); my(@termusers) = ; chomp @termusers; close TERMFILE; #### foreach $termusername (@termusers) { NameComp( $termusername ); } # or simpler .... NameComp( $_ ) foreach ( @termusers ); #### NameComp( $termusername, \@curusers ); #### package NameComp; use Lingua::EN::MatchNames; my @curUsers; sub readFile { my ( $filename ) = @_; open USERFILE, $filename or die $!; @curUsers = ; chomp @curUsers; close USERFILE; } sub compare { my ( $termUser ) = @_; foreach ( @curUsers ) { # something involving $termUser and $_ } } package Main; die ("Usage: $0 " ) unless( 2 == @ARGV ); open (TERMFILE, $ARGV[0]) or die $!; my( @termusers ) = ; chomp @termUsers; close TERMFILE; NameComp::readFile( $ARGV[1] ); for ( @termUsers ) { NameComp::compare( $_ ); } #### package NameComp; use Lingua::EN::MatchNames; sub new { my ( $class, $filename ) = @_; my $self = {}; bless $self, $class; $self->readFile( $filename ); return $self; } sub readFile { my $self = shift; my ( $filename ) = @_; open USERFILE, $filename or die $!; @{$self->{users}} = ; chomp @{$self->{users}}; close USERFILE; } sub compare { my $self = shift; my ( $termUser ) = @_; foreach ( @{$self->{users} ) { # something involving $termUser and $_ } } package Main; die ("Usage: $0 " ) unless( 2 == @ARGV ); open (TERMFILE, $ARGV[0]) or die $!; my( @termusers ) = ; chomp @termUsers; close TERMFILE; my $comparer = new NameComp ( $ARGV[1] ); for ( @termUsers ) { $comparer->compare( $_ ); }