in reply to Concantenation

Since you're using double quotes (which are interpolated), you don't need concatenation at all. What you have produces a string that looks like this (if $course_no = 243):
/usr/local/apache2/htdocs/crs_desc/243 . desc.txt

To do this with concatenation, try:

open (DESCDOC, "/usr/local/apache2/htdocs/crs_desc/$course_no" . "desc.txt")

Or, to do this without concatentation, try:

open (DESCDOC, "/usr/local/apache2/htdocs/crs_desc/${course_no}desc.txt")