2016-11-06 4 views
0

Meine Zuweisung fordert mich auf, einen Zahlenbereich von der höchsten bis zur niedrigsten Zahl auszugeben, aber sie muss von der Benutzereingabe stammen. Wo ich verwirrt bin, ist, dass ich weiß, wie man ein Array anzeigt, aber ich bin mir nicht sicher, ob ich meinen Code mit einer for-Schleife richtig starte.Benutzereingabe (CGI) ausgeben

Zuordnung Erstellen Sie eine CGI-Anwendung mit einer HTML-Seite mit dem Namen myform.html und ein CGI-Skript namens myscript.cgi. Das Formular der HTML-Seite enthält zwei Textfelder zum Eingeben der oberen und unteren Werte für einen Bereich aufeinanderfolgender Ganzzahlen. Füllen Sie das Formular aus, indem Sie Werte auswählen, die sich um ungefähr 10 unterscheiden. Das Absenden des Formulars sollte myscript.cgi ausführen. Das Skript sollte eine ungeordnete Liste ausgeben, die alle Ganzzahlen im Bereich von der höchsten zur niedrigsten zeigt.

#!c:\Dwimperl\perl\bin\perl.exe 

use strict; 
use warnings; 

use CGI qw(:standard); 
use CGI::Carp qw(fatalsToBrowser); 
print "Content-type: text/html\n\n"; 

#read form input from user 
my $userinput = <STDIN>; 
my $low = param ('lowest'); 
my $high = param ('highest'); 


foreach (my $userinput < 100){ 
print "$low && $high" ;} 

Antwort

0

Ersetzen Sie diesen Code

foreach (my $userinput < 100){ 
print "$low && $high" ;} 

Damit ein for-Schleife zu tun unten von der hohen Zahl der geringen Anzahl

print qq{<ul>\n}; 
for (my $i=$high; $i>= $low; $i--) { 
    print qq{ <li>$i</li>\n}; 
} 
print qq{</ul>\n}; 
0

persönlich zu zählen, mag ich nicht die Verwendung von C-Stil-Schleife. Ich finde es zu unordentlich.

Hier ist, wie ich es schreiben würde.

say "\t<li>$_<\li>" for (reverse $low .. $high); 

oder

print "\t<li>$_<\li>\n" for (reverse $low .. $high); 
+0

'für meine $ i (Reverse niedrigen $ .. $ hoch)' wird weit mehr Speicherplatz als 'for (my $ i = $ hoch; $ i> = $ niedrig; $ i -) '. Dies mag für das OP und andere Leser ein Problem darstellen. – ikegami

+0

Beachten Sie auch, dass der For/For-Anweisung-Modifikator keine Parens um den Ausdruck herum enthält. '... für reverse $ low .. $ high;' ist völlig in Ordnung. – ikegami