Ob du was in einem Browser anzeigst oder zum Speichern anbietest hat erstmal nichts damit zu tun wer das rausschickt, das sind nur die richtigen HTTP-Header setzen.
Guck, alles was Apache kann (der macht auch nix anderes als Code starten; Datei einlesen; HTTP-Header setzen; Datei raus-printen) kannst du auch mit Perl machen.
1 + 1 = 10