Вы пытаетесь сопоставить $ infile, который содержит имя текстового файла, то есть 'emails.txt'.
Вы должны сделать что-то вроде
while(<IN>) {
print "Valid \n" if $_ =~ /\bYOURREGEX\b/
}
Этопуть \ b соответствует границам слов вместо начала и конца строки, и вы можете сопоставлять адреса электронной почты, содержащиеся в другой строке.
РЕДАКТИРОВАТЬ: Но ответ Джиры определенно лучше, этот просто говорит вам, что не так.
Надеюсь, это поможет!