Perl读取文件并将每行存储为变量/值

0 variables perl file

我是perl的新手,但到目前为止,我到目前为止还需要完成我需要的所有工作.

我有一个格式如下的文件:

#IPAAS

@NX_iPaaS_AuthKey=dGstaG9zaGlub0BqcCasdpasdHN1LmNvbTppUGFhUzAw
@NX_iPaaS_href=live/661134565/process/75231
Run Code Online (Sandbox Code Playgroud)

我想读取每个与@NX_iPaaS开始进入一个类似命名的变线,如@NX_iPaaS_AuthKey将创建一个名为$ NX_IPAAS_AUTHKEY新的变量和保持价值,NX_iPaaS_href会导致一个名为$ NX_IPAAS_HREF与价值等新变量上?

--Update--

嘿伙计们,我需要对上述解决方案进行微调......

所以我刚刚发现我正在阅读的文件将包含"部分",例如

----- SECTION=cr 
NX_NTF_PERSISTENT_ID=cr:400017 
NX_NTF_REF_NUM=45 
----- SECTION=cnt 
NX_NTF_PERSISTENT_ID=cnt:F9F342055699954C93DE36923835A182 
Run Code Online (Sandbox Code Playgroud)

您可以看到其中一个变量出现在两个部分中(因为我没有'next,除非已定义')导致前一个值被覆盖.有没有办法在NX_NTF_变量名称前加上每个部分顶部'section ='行提供的值?

谢谢

cho*_*oba 6

好的做法是使用哈希.

my %hash;
while (<>) {
    chomp;
    my ($key, $value) = split /=/;
    next unless defined $value;
    $hash{$key} = $value;
}
Run Code Online (Sandbox Code Playgroud)

为什么使用变量变量名称不是一个好主意,请参阅为什么"使用变量作为变量名称"这是多么愚蠢.