in reply to User Tracking in closed source application.

Yes, there are many ways to do this.

Method 1 - you can use the hidden form fields to store student information when you generate the HTML pages. It would be something like this -
use CGI; $q = new CGI; print $q->header, $q->hidden('variable', 'value'), .... ;
Method 2 - When you generate the link on the page, append ?name=xxxx after link.pl script, so your link.pl script knows about the name variable when it gets activated.

Method 3 - Set a cookie with encrypted student name in it, and use this cookie to track the student.

The above are a few commonly used techniques in Web CGI programming to pass variables between pages.