Per molti anni ho scritto script Perl per elaborare file ASCII di un tipo o di un altro nella mia squadra. Io di solito fare questo quando devo riformattare o riassetto di una serie di pagine HTML, per esempio.
Per eseguire uno script Perl che viene installato sul computer, è necessario elaborare uno o più file sul vostro computer, e che ha anche installato l’interprete Perl sul vostro computer, è molto semplice – è sufficiente fare doppio clic sul script Perl e fa il business – supponendo che tutto è configurato correttamente, naturalmente, per esempio, la posizione del programma perl.exe è definita nel suo percorso. È anche possibile aprire una finestra e digitare perl DOS perlfile .pl eseguire uno script (dove perlfile .pl è il nome dello script Perl da eseguire).
Tuttavia, quando si tratta di esecuzione di uno script in Perl o script CGI su un server web, le cose possono essere un po ‘più complicato. – Non troppo complicato, ma un po ‘più complicato
In questo articolo ci vediamo due versioni dello stesso script:. che verrà eseguito felicemente su una macchina locale (doppio clic sullo script, per esempio), e uno che verrà eseguito su un server web
Lo script stesso è molto semplice – viene aperto un file modifica del testo all’interno del file, e quindi salvare il file con un nome diverso
Versione 1 -. versione locale
Ecco la versione 1 dello script. Questa è la versione che gira in locale su un computer senza un server web è la vista. Si noti che ho inserito gli spazi nei punti giusti per mantenere il codice viene elaborato dal browser. Ho fatto questo, ove necessario, in questo articolo
localScript.pl
$ name = “before.htm” or die “Impossibile assegnare alla variabile: .! $ “
rinominare $ nome,” $ name.bak “or die” Impossibile rinominare: $ “;
aperto (IN, “$ nome”) or die “Impossibile creare: $”;
undef $ /
while ($ linea =)
$ linea = ~ s / ciao mondo / addio duro / s mondo;
(Stampa $ linea);
close (OUT);
close (IN);
Rinomina “before.htm”, “after.htm”;
rinominare “before.htm.bak”, “before.htm”;
Questo script è un file chiamato before.htm apre, usare una espressione regolare per cambiare la stringa ‘ciao mondo’ a ‘Goodbye Cruel World “e scrive il contenuto di un file chiamato after.htm. Se dopo htm non esiste, viene creato
Il file contiene semplicemente un before.htm linea – .. Ciao Mondo Quindi neanche un file HTML corretto, infatti, ma che non ha importanza per questo esercizio perché E ‘lo script che è importante, non il file in fase di elaborazione
Versione 2 -. La versione server web
Ecco la versione del server web sceneggiatura. Esso contiene tutto ciò che è in versione 1, più un po ‘di più. Spazi in questo caso, ho inserito ove opportuno assicurare che il codice viene visualizzato correttamente nel browser
webScript.cgi
# / usr / bin / perl – w
utilizzare CGI qw (: all).!;
utilizzare CGI :: Carp qw (fatalsToBrowser warningsToBrowser);
warningsToBrowser (1);
utilizzare
intestazione print
;; rigoroso
il mio $ name = “before.htm” or die “Impossibile assegnare alla variabile: $”;
rinominare $ nome, “$ name.bak” or die “Impossibile rinominare: $”;
aperto (IN, “$ nome”) or die “Impossibile creare: $ !!”;
undef $ /
my $ linea;
while ($ linea =)
$ linea = ~ s / Ciao / Addio mondo crudele mondo / s;
(Stampa $ linea);
close (OUT);
close (IN);
rinomina “before.htm”, “dopo .htm”;
rinominare “before.htm.bak”, “before.htm”;
Un paio di punti di partenza da considerare:
1. Perché la scrittura ha un estensione .cgi invece di un estensione .pl?
CGI è l’acronimo di Common Gateway Interface, che è una specifica per il trasferimento di informazioni tra un server web e uno script CGI. Quindi CGI iteself non è una lingua, ma gli script CGI può essere scritto in diverse lingue di Perl è uno. Se si scrive uno script Perl con estensione .pl, e quindi modificare l’estensione .cgi, lo script diventa uno script CGI, e fornendo soddisfa le specifiche CGI, verrà eseguito su un server web.
2. Se si chiama questo script webScript.pl verrà eseguito senza problemi su un disco locale – in versione 1 ha fatto. Cioè, tutto il codice aggiuntivo non impedisce che l’esecuzione in locale.
Esecuzione dello script
Per eseguire lo script prima bisogno di caricare lo script e inviare before.htm nella directory cgi-bin del proprio server web. La directory cgi-bin del server web potrebbe essere chiamato qualcos’altro, ma è probabile che sia riconoscibile come il luogo in cui hanno bisogno di script CGI per essere collocata.
Per impostazione predefinita, quando si carica un file sul server web sarà probabilmente disporre di autorizzazioni 644. È necessario cambiare questo a 755 in modo che lo script può essere eseguito da chiunque. L’ISP dovrebbe fornire un modo per farlo. In caso contrario, si prega di contattare me e io manderò john@dixondevelopment.co.uk uno script per modificare le autorizzazioni per voi.
Una volta caricati i file e modificato le autorizzazioni, tutto quello che dovete fare è andare allo script nel vostro browser preferito. Se la finestra del browser è vuota, tutto è probabilmente funzionato OK. Controlla nella directory cgi-bin per vedere se è stato creato il file e after.htm contenente le parole “Goodbye Cruel World”.