【发布时间】:2016-08-08 15:29:44
【问题描述】:
我对perl一点也不熟悉,但对html有一些了解。我目前正在尝试从一个在线程序配置代码,该程序处理从用户输入的文本以计算和输出一些重要的数字,以便对本地目录中包含文本的大量文件执行相同的操作。问题在于我对来自站点的代码如何或为什么通过查找 & 和 = 来拆分输入的文本缺乏了解,因为输入的文本从不包含这些字符,我的文件也不包含。以下是在线程序中的一些代码:
if ($ENV{'REQUEST_METHOD'} ne "POST") {
&error('Error','Use Standard Input by METHOD=POST');
}
read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
if ($buffer eq '') {
&error('Error','Can not execute directly','Check the usage');
}
$ref = $ENV{'HTTP_REFERER'};
@pairs = split(/&/,$buffer);
foreach $pair (@pairs) {
($name,$value) = split(/=/,$pair);
if ($name eq "ATOMS") { $atoms = $value; }
然后它使用这些“对”来适当地计算所需的数字。来自用户的输入只是一个名为“ATOMS”的文本区域,表单动作是 cgi 脚本:
<form method=POST action="/path/to/the/cgi/file.cgi">
<textarea name="ATOMS" rows=20 cols=80></textarea>
</form>
我忽略了 html 和 perl 代码的不太重要的细节。到目前为止,我所能做的就是以文本格式从给定目录中的所有文件中获取所有内容,但是当我将其输入到使用 textarea 中的文本来计算值的脚本中时(代替变量 $buffer),它不起作用,我怀疑这是由于拆分代码,它找不到 & 和 = 符号。代码如何从在线脚本中获取这些符号,以及如何实现它以用于我的本地文件?如果需要任何其他信息,请告诉我,提前致谢!
【问题讨论】:
-
那里的代码是Old,大写O。