perl - 无限循环读取配置文件

标签 perl ubuntu

我必须设置我的配置文件,例如 admin.conf,我希望我的 Perl 程序读取配置文件并在无限循环中输出值。当我更改配置文件中的值时。程序输出中的值将更新为新值。任何人都可以告诉我如何做到这一点的例子吗?我也用 IO::Socket::INET作为我的 Perl 包。如何先读取配置文件然后执行无限循环?
这是我的 admin.conf

[state]
status_state = ONLINE
这是我想要的输出
ONLINE
ONLINE
ONLINE
ONLINE
当我更改 admin.conf 中的值时。该值将更新为:
OFFLINE
OFFLINE
OFFLINE
OFFLINE
我正在使用 终端 Ubuntu 输出我的值(value)。

最佳答案

要读取该配置文件,您必须使用 Config::Tiny 包。您可以从这里学习读取该配置文件 (Reading a dot symbol (.) in perl)
要解决您的问题,请使用以下代码:

use warnings;
use strict;
use IO::Socket::INET;
use CGI;
use Config::Tiny;
use Data::Dumper;
use CGI::Carp qw(fatalsToBrowser);

$| = 1;


while (1) {

# Write some data to the client
my $file = "The path of your configuration file";

my $Config = Config::Tiny->read($file);
#reads the section, key and the value of the configuration file.
my $status = $Config->{"state"}->{"status_state"};

    sleep 2;
    
    print "$status\n";

}

关于perl - 无限循环读取配置文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22677286/

相关文章:

perl - Perl 中的包变量不在 "scope"中?

Mongodb 无法启动 : addr already in use

Perl SV 值来自没有副本的指针

perl - 为什么 `perl Foo.pm` 和 `perl -I. -mFoo -e1` 的行为不同?

perl - 如何快速解析大(> 10GB)文件?

Android Studio/Xubuntu ADB 等待

ubuntu - Rabbitmq 忽略 Ubuntu 12 上的配置

regex - 使用存储在哈希中的正则表达式提取字符串

c# - 如何在 Ubuntu 上使用 NginX 提供 Blazor 应用程序

linux - 如何在 Ubuntu 中启动 Thunderbird 并最小化启动窗口