【问题标题】:Outputting User Input (CGI)输出用户输入 (CGI)
【发布时间】:2016-11-07 13:59:32
【问题描述】:

我的作业要求我输出从最高到最低的一系列数字,但它必须来自用户输入。我感到困惑的是我知道如何显示一个数组,但是,我不确定我是否通过使用 for 循环来正确地开始我的代码。

作业 使用名为 myform.html 的 HTML 页面和名为 myscript.cgi 的 CGI 脚本创建一个 CGI 应用程序。 HTML 页面的表单有两个文本框,用于输入一系列连续整数的上限值和下限值。通过选择相差约 10 的值来完成表单。提交表单应执行 myscript.cgi。该脚本应输出一个无序列表,显示从最高到最低范围内的所有整数。

#!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" ;}

【问题讨论】:

    标签: perl cgi


    【解决方案1】:

    就我个人而言,我不喜欢使用 C 风格的循环。我觉得太乱了。

    我是这样写的。

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

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

    【讨论】:

    • for my $i (reverse $low .. $high) 将使用比for (my $i=$high; $i&gt;= $low; $i--) 更多的内存。对于 OP 和其他读者来说,这可能是也可能不是问题。
    • 另请注意,for/foreach 语句修饰符在表达式周围没有括号。 ... for reverse $low .. $high; 很好。
    【解决方案2】:

    替换此代码

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

    有了这个,做一个从高数倒数到低数的for循环

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

    【讨论】:

      猜你喜欢
      • 2011-05-03
      • 1970-01-01
      • 2014-04-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-30
      • 1970-01-01
      相关资源
      最近更新 更多