使用 perl 查找正常运行时间的 cgi 文件

cgi file utilizing perl to find uptime

我有一个使用 perl 的 cgi 文件,我想在其中显示本地时间和正常运行时间。我似乎无法正常运行

我正在尝试设置变量 $utime = uptime 但这目前不起作用。我也尝试使用 /proc/uptime,但没有用。以下是我到目前为止尝试过的方法

#!/usr/bin/perl -w
#Script Name: sysInfo.cgi

use CGI ":standard";

$loctime = localtime;
$utime = uptime;

print header,
        start_html("Localtime and Uptime"),
        h1("$loctime"),
        h1("$utime"),
        end_html;

我确信我遗漏了一些简单的东西,但在我的浏览器中执行时,我只是不断获取正常运行时间作为字符串。

代码的相关行是:

$loctime = localtime;
$utime = uptime;

它们的行为有些不同。

首先调用 Perl 函数 "localtime" 并将其结果赋值给变量。因为它是在标量上下文中调用的,所以函数 returns 是人类可读的字符串。

第二行应该会产生某种警告,除非您在程序中的某处定义了 uptime。也许:

Unquoted string "uptime" may clash with future reserved word

这解释了为什么 $utime 最终包含单词 "uptime"。

您似乎想调用 unix 命令 uptime 并将其输出分配给变量。为此,人们通常会使用 qx//(又名反引号)的一些变体:

$utime = `/usr/bin/uptime`;

$utime = qx( /usr/bin/uptime );

详情见perldoc -f qx