2010-12-02 10 views
0

je le code suivant dans un perl/script cgi:écrit le contenu HTML dans un script Perl dans un fichier dans un répertoire spécifique

$commonContent = <<HTML; 
<font color="#CC0000"><strong>$errStr</strong></font> 
<h2 class="first">Request ID: $recId<br />(Requested by: $userInfo->[1], $userInfo->[3], $userInfo->[5])</h2> 
<h3 style="margin-bottom:16px">Website: $website</h3> 
<p><strong>Request Type: $request</strong></p> 
<p>Request Description:<br />$description</p> 
<p>Priority/Required Turnaround Time: $priority</p> 
<p>Pre-deployment review: $review</p> 
<p><strong><i>Estimated completion date for this request: $completionDate</i></strong></p> 
HTML 

Je veux écrire le contenu du HTML à un fichier dans un répertoire afin que je puisse le garder comme un disque. Est-ce que quelqu'un sait comment faire cela? J'ai lu la deuxième édition de Perl Cookbook et pro perl sur ce problème, mais tout cela me parait perlish.

Répondre

1

Regardez perl's open().

Vous souhaiterez ouvrir un Filehandle et imprimer la variable dans ce fichier.

open(my $fh, '>', "output.html") or die $!; 
+0

+1 - utilise un descripteur de fichier local, la forme à trois arguments d'ouverture, et vérifie les erreurs. – Ether

1
my $myfile = '/path/to/myfile.html'; 
open(FILE, "> $myfile") || die "Couldn't open $myfile: $!\n"; 
print FILE $commonContent; 
close(FILE); 
+1

devrait être "print FILE $ commonContent" ou bien il sera imprimé sur stdout. – andy

+0

heh, vous avez absolument raison. Je vais le mettre à jour. – dmah

+0

beaucoup mieux, avoir un upvote :-) Note à l'affiche originale, une erreur commune Perl est d'essayer de mettre une virgule après le fichier dans la ligne d'impression. Mais la façon dont dmah l'a, avec juste un espace, est exactement juste. – andy