Danielle asked about differences between chmod arguments: (-)(rwx)(---)(---) 111 000 000 effect chmod 700 ??x ??x ??x effect of chmod +x ??x ??? ??? effect of chmod u+x We then wrote two programs. -bash-3.2$ more ~/zucchini/* :::::::::::::: /u/dgerman/zucchini/one :::::::::::::: #!/usr/bin/perl print "Welcome to the program.\n"; print "Name: "; $who = ; chop($who); print "Age: "; $age = ; print "Well, "; print $who; print " you will be "; print $age + 1; print " years old next year.\n"; :::::::::::::: /u/dgerman/zucchini/two :::::::::::::: #!/usr/bin/python print "Welcome to the program." who = raw_input("Name: "); age = raw_input("Age: "); print "Well,", print who, print "you will be", print int(age) + 1, print "years old next year." -bash-3.2$ Then we started writing a CGI script in Python. This is what it was in the beginning: #!/usr/bin/python import time print "Content-type: text/html\n\n"; print "Hello", time.strftime("%a, %d %b %Y %H:%M:%S +0000", time.localtime()) It then became: #!/usr/bin/python print "Content-type: text/html\n\nMy Script"; print "What?"; print ""; We change it further to: #!/usr/bin/python print "Content-type: text/html\n\nMy Script"; who = "Larry Bird" age = 53 print "Well", who, "you will be", int(age) + 1, "years old next year." print ""; And now the final version: #!/usr/bin/python import cgi tomato = cgi.FieldStorage() if tomato.has_key("who"): who = tomato["who"].value if tomato.has_key("age"): age = tomato["age"].value print "Content-type: text/html\n\nMy Script"; print "Well", who, "you will be", int(age) + 1, "years old next year." print ""; This assumes we know how to feed data into the program: http://silo.cs.indiana.edu:8346/cgi-bin/coffee?who=Mike&age=46 The program responds as expected: Well Mike you will be 47 years old next year.