in reply to Useless Program

At the bottom is a version that works. I found two bugs. The first is that you complain about "name not found" inside the while loop. This means that you complain if the name doesn't happen to be the first one on the list. Moving the complaint outside of the while loop causes it to only fire off if _none_ of the names match, which is presumably what you want. The second bug is in the regexp. The backslash messes it up. I would have expected it to match the literal string "$name", but it doesn't seem to. Without the backslash, it matches on a line containing exactly the value of the $name variable. #!/usr/bin/perl -w use strict; open (FILE, "users.txt") or die "File not found\n"; my $name = ''; my $yn = ''; print "Enter your name--> "; chomp ($name = <STDIN>); my $nameWasFound = 0; while (<FILE>) { if (/^$name$/i) { print "Your name was already found\n"; $nameWasFound = 1; last; } } if(!$nameWasFound){ print "Name not found. Would you like to add it? (y/n)--> "; chomp ($yn = <STDIN>); if ($yn eq 'y') { close FILE; open (OUTPUT, ">>users.txt"); print OUTPUT "$name\n"; close OUTPUT; ; } else { print "FINE!\n"; ; } } print "end.\n";