以下是config.pm文件。
$AHost = '10.226.33.233';
$APort = '33002';
$ADBUser = "enacct";
$ADBPassword = "enacct";
我正在使用sysread在some.pl文件中读取此文件,它将整个文件数据作为字符串获取(修改后我们将整个字符串作为参数传递给它。它会将其写回文件)。
假设我想将$ AHost的值替换为'10 .226.33.234'而将$ ADBUser替换为“pwd”;。我们怎么做?
我的意思是我们应该替换检索到的字符串中相应的更改值,并通过发送更新后的字符串,我们可以正确地将数据写回文件。
如何使用此方案更新字符串?
谢谢,
答案 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};