NAMES HAVE BEEN CHANGED TO PROTECT THE INNOCENT Thanks, Ironpaw use File::Find; $feeddir = "c:/"; chdir("$feeddir"); find(\&wanted, "$feeddir"); sub wanted { /\TNSNAMES.ORA/i or return; $filename = $File::Find::name; &Details($filename); } sub Details { $file = shift; open(CSV, ">>$file"); print "$file\n"; print CSV "\n"; print CSV "SERVER01.dbdev1=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=SERVER01)(PORT=1527)) )(CONNECT_DATA=(SID=dbDEV1)))\n"; print CSV "SERVER01.dbdev2=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=SERVER01)(PORT=1527)) )(CONNECT_DATA=(SID=dbDEV2)))\n"; print CSV "SERVER01.dbintst=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=SERVER01)(PORT=1527)) )(CONNECT_DATA=(SID=dbINTST)))\n"; print CSV "SERVER01.dbmstr=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=SERVER01)(PORT=1527)) )(CONNECT_DATA=(SID=dbmstr)))\n";