Присвойте переменные всем строкам в текстовом файле, записанном в perl, и используйте их для отображения в таблице HTML - PullRequest
0 голосов
/ 07 апреля 2020

Например, у меня есть cgi, где я добавил скрипт оболочки в текстовый файл lstatus.txt следующим образом:

use IO::All;
use CGI;

system `bash /opt/apache/cgi-bin/lisa/lisapage3.sh > lstatus.txt`

io('lstatus.txt') > $data
Print << EOF;
<HTML>
<BODY>
<P>$data</P>
</BODY>
</HTML>

Вывод выглядит следующим образом: EnterpriseDasboardService выполняется. Работает RegistryService. Работает PortalService. Работает VirtualServiceEnvironment.

Теперь я попытался отредактировать текстовый файл lstatus.txt, и его содержимое выглядит следующим образом:

EnterpriseDasboardService is Running > $abs
RegistryService is Running > $pqr
PortalService is Running > $qwe
VirtualServiceEnvironment is Running > $dfg 

Я назначил переменные для каждой строки в текстовом файле, как указано выше. Мне нужно, чтобы каждая переменная использовалась в теге таблицы следующим образом:

<table>
  <th>STATUS</th>
      <tr>
         <td>$abs</td>
          .....
         <td>$dfg</td>
       </tr>
</table>    

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

1 Ответ

0 голосов
/ 07 апреля 2020

Возможно, вы хотите что-то вроде следующего кода ниже

Примечание: прочитайте документацию для системы

use strict;
use warnings;
use feature 'say';

use CGI;

my $filename = 'lstatus.txt';
my @arguments = ('/opt/apache/cgi-bin/lisa/lisapage3.sh','>',$filename);

system 'bash', @arguments;

open my $fh, '<', $filename
    or die "Couldn't open $filename";

my @data = <$fh>;

close $fh;

chomp @data;

my $table = data2table(\@data);

$html =
"<html>
    <head>
        <title>Status webpage</title>
    </head>
    <body>
        $table
    </body>
</html>
";

say $html;

sub data2table {
    my $data = shift;

    my $table;
    my $space = "\n\t\t";

    $table  = $space . '<table>';
    $table .= $space . "\t<tr><th>STATUS</th></tr>";
    $table .= $space . "\t<tr><td>$_</td></tr>" for @{$data};
    $table .= $space . '</table>';

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