CGI-файл, использующий Perl для поиска времени безотказной работы - PullRequest
0 голосов
/ 19 апреля 2019

У меня есть файл cgi, использующий perl, где я хочу отображать местное время и время работы. Кажется, я не могу заставить работать безотказно

Я пытаюсь установить переменную $ 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;

Я уверен, что упускаю что-то простое, но я просто продолжаю получать время работы в виде строки при выполнении в моем браузере.

1 Ответ

2 голосов
/ 19 апреля 2019

Соответствующие строки кода:

$loctime = localtime;
$utime = uptime;

Они ведут себя несколько иначе.

Первый вызывает Perl-функцию «localtime» и присваивает ее результат переменной. Поскольку она вызывается в скалярном контексте, функция возвращает читаемую человеком строку.

Вторая строка должна выдавать какое-то предупреждение, если вы не определили uptime где-то в своей программе. Может быть:

Строка без кавычек "uptime" может конфликтовать с будущим зарезервированным словом

Это объясняет, почему $utime содержит слово "uptime".

Кажется, вы хотите вызвать команду unix uptime и присвоить ее вывод переменной. Для этого обычно используют какой-то вариант qx// (он же backticks):

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

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

Подробнее см. perldoc -f qx.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...