Debes tener en cuenta quien ejecuta el script, por regla general es el
usuario www-data y debe tener permisos de escritura y lectura en la capeta
tmp. Puedes comprobar si es ese el problema lanzando el script pero sin la
necesidad de escribir en el disco el resultado:
#!/usr/bin/perl
print "Content-type: text/html\n\n";
print "<HTML>\n<BODY BGCOLOR=\"#FFFFFF\">\n\n";
print "<h1 align='center'>espacio disponible</h1>\n";
print "<p><b>".`du -h --max-depth=1 /home`."</p>\n";
print "</BODY>\n";
print "</HTML>";
Yo he probado ese código en mi máquina y funciona a la perfección y con
ello me refiero a que finaliza correctamente.
Un Saludo.