package TestSite::Login; $VERSION = v0.0.1; use v5.10.0; use warnings; use strict; use Carp; use Digest::MD5 'md5_hex'; open(my $fh, '<', 'passwords') or die "cannot open passwords file $!"; my %passwords = map({chomp; split(/:/, $_, 2)} <$fh>); sub check_password { my ($user, $pass) = @_; return( $passwords{$user} and md5_hex($pass) eq $passwords{$user} ); } 1;