The variable $Dir_Name is causing the problem. You are passing $Src_Dir as argument to dir_read subroutine. Hence, the line,
will assign 'C:\Documents and Settings\abcd' to $Dir_Name. So, the line
-
mkdir "$Dest_Dir_Gel\$Dir_Name";
-
will be like mkdir "C:\gel\C:\Documents and Settings\abcd" :(
process the argument for read_dir() to get only the desired string as sub-folder structure.