($reg_exp = $user_query) =~ s/(\W)/$1 eq '*' ? "\\S*" : "\\$1"/ge; #### # File as an array of lines: @matching_lines = grep { /$reg_exp/ } @lines_to_search; #### # File in a scalar: @matching_lines = $file =~ /^(.*${reg_exp}.*)$/mg;