Hacer eso es súmamente sencillo, checeka la sección de tutoriales de
www.perlenespanol.com para aprender como conectarte a la base de datos, y no veo más dificultades, el código de descarga puede ser aleatorio con rand() y también almacena junto al código, la fecha y hora de creación para luego borrar los viejos...Y que no puedan descargarlo varias personas con el mísmo código...
Va, eso lo ves tu...Que duda en concreto tienes ?
Saludos