in reply to Read through directory and return matched data

my $acct_number = <STDIN>;

It is not matching because you haven't chomped $acct_number to remove the newline.

chomp(my $acct_number = <STDIN>);

Update: It appears that 'NAME' and $acct_number are on the same line (in your sample data). So when you set $flag1, you should test for '$acct_number' on the same input line. Then you would have a matching record (in addition to removing the newline from $acct_number. :-)