是否可以在Perl中使用Config :: General读取__DATA__?

Ala*_*ith 4 perl configuration

我想设置Config :: General来读取__DATA__脚本部分而不是外部文件.(我意识到这通常不是它的工作原理,但是我想知道我是否能够实现它.具体的用例是我可以将脚本示例发送给另一个开发人员而无需发送单独的配置文件.)

根据perldoc perldata,$main::DATA应该充当有效的文件句柄.我认为Config :: General应该可以-ConfigFile => \$FileHandle用来阅读它,但它对我不起作用.例如,此脚本将在不崩溃的情况下执行,但__DATA__不会读入.

#!/usr/bin/perl -w

use strict;
use Config::General;
use YAML::XS;

my $configObj = new Config::General(-ConfigFile => $main::DATA);

my %config_hash = $configObj->getall;

print Dump \%config_hash;

__DATA__

testKey = testValue
Run Code Online (Sandbox Code Playgroud)

我也尝试过:

my $configObj = new Config::General(-ConfigFile => \$main::DATA);
Run Code Online (Sandbox Code Playgroud)

my $configObj = new Config::General(-ConfigFile => *main::DATA);
Run Code Online (Sandbox Code Playgroud)

和其他一些变化,但无法得到任何工作.

是否可以使用Config :: General从中读取配置键/值__DATA__

dax*_*xim 12

-ConfigFile需要引用句柄.这有效:

my $configObj = Config::General->new(
    -ConfigFile => \*main::DATA
);
Run Code Online (Sandbox Code Playgroud)