Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Perl MooseX使用Config::Std_Perl_Oop_Configuration_Moose - Fatal编程技术网

Perl MooseX使用Config::Std

Perl MooseX使用Config::Std,perl,oop,configuration,moose,Perl,Oop,Configuration,Moose,我正在尝试读取格式为的配置文件 <tag>:<value> : 但是我对中提到的任何模块都不感兴趣,因为提到的Moose模块似乎都支持config.ini样式 <tag>=<value> = 我不能使用它,因为我已经有很多带有:符号的配置文件 我可以用一种易于维护的方法覆盖使用的方法吗?在我看来,您可以像这样使用并实现get\u config\u from\u file方法 sub get_config_from_file { my (

我正在尝试读取格式为的配置文件

<tag>:<value>
但是我对中提到的任何模块都不感兴趣,因为提到的Moose模块似乎都支持config.ini样式

<tag>=<value>
=
我不能使用它,因为我已经有很多带有
符号的配置文件


我可以用一种易于维护的方法覆盖使用的方法吗?

在我看来,您可以像这样使用并实现
get\u config\u from\u file
方法

sub get_config_from_file {
  my ($class, $file) = @_;
  open my $fh, '<', $file or die $!;
  scalar { map { chomp; split /:/, $_, 2 } <$fh> };
}
sub从\u文件获取\u配置\u{
我的($class$file)=@;

打开我的$fh,'它有点工作,配置进入,但我如何检索我在配置中初始化的属性?如果我添加一个属性用户名,比如说,并在配置中设置一个用户名字段,$config->username不会产生任何结果。尝试设置延迟构建,甚至查看配置对象,但哈希似乎消失了。问题是lem是GetOpt.Config::Std生成散列。毫不奇怪,GetOpt不喜欢它,因为C/L无法理解散列、数组散列等。这在某种程度上使MooseX::ConfigFromFile对上面的任何内容都毫无用处:列表。干杯。