Name "main::OUTPUT" used only once: possible typo at ... . missing E:/qdepot_automation/addfiles.txt Unrecognized escape \q passed through in regex; marked by <-- HERE in m/E:\q <-- HERE depot_automation/ at ... . missing E:/qdepot_automation/AMSS/products/build/textfiles.txt #### use strict; use warnings; my $client_root = "E:/qdepot_automation"; my $perforce_root_dir = "//depot/code"; my $line; while ($line = ) { if ($line =~ /missing/) { $line =~ s/\\/\//g; $line =~ s/\Q$client_root\E/$perforce_root_dir/g; print "$line\n"; } } __DATA__ missing E:\qdepot_automation\addfiles.txt same E:\qdepot_automation\AMSS\products\build\ms\files.data same E:\qdepot_automation\AMSS\products\build\ms\build.cmd missing E:\qdepot_automation\AMSS\products\build\textfiles.txt same E:\qdepot_automation\AMSS\products\build\ms\lib.min #### missing //depot/code/addfiles.txt missing //depot/code/AMSS/products/build/textfiles.txt