如何在Perl中读取和替换配置数据

时间:2013-02-12 07:50:31

标签: perl

以下是config.pm文件。

$AHost = '10.226.33.233';
$APort = '33002';
$ADBUser = "enacct";
$ADBPassword = "enacct";

我正在使用sysread在some.pl文件中读取此文件,它将整个文件数据作为字符串获取(修改后我们将整个字符串作为参数传递给它。它会将其写回文件)。

假设我想将$ AHost的值替换为'10 .226.33.234'而将$ ADBUser替换为“pwd”;。我们怎么做?

我的意思是我们应该替换检索到的字符串中相应的更改值,并通过发送更新后的字符串,我们可以正确地将数据写回文件。

如何使用此方案更新字符串?

谢谢,

1 个答案:

答案 0 :(得分:0)

1:您可以使用Getopt :: Euclid在脚本中存储默认配置值,它将允许您从commanline覆盖其中任何一个。它也是自我记录。

2:使用YAML存储配置数据,您可以使用YAML :: Tiny来读取它

示例:

file.yaml (there should be an empty line at the end of the file!)

    ---
    AHost: blah
    APort: bah



    use YAML::Tiny;

    # Create a YAML file
    my $yaml = YAML::Tiny->new;

    # Open the config
    $yaml = YAML::Tiny->read( 'file.yml' );

    # Reading properties
    my $AHost = $yaml->[0]->{AHost};