the program has to find successful match if the filename is following Case 1 : test_file_name.dat (all lower case) Case 2 : TEST_FILE_NAME.DAT (all upper case) Case 3 : Test_File_Name.dat (Mixed) #### lc $name eq 'test_file_name.dat' #### $datfile = uc(test_file_name.dat); #### use strict; # and use warnings; # as well #### open(FL, $File::Find::name);