我有一个Perl脚本,它读取正则表达式搜索并替换INI文件中的值.
这工作正常,直到我尝试使用捕获变量($ 1或\ 1).这些用$ 1或\ 1替换.
任何想法如何让这个捕获功能通过变量传递正则表达式位?示例代码(不使用ini文件)...
$test = "word1 word2 servername summary message";
$search = q((\S+)\s+(summary message));
$replace = q(GENERIC $4);
$test =~ s/$search/$replace/;
print $test;
Run Code Online (Sandbox Code Playgroud)
这导致......
word1 word2 GENERIC $4
Run Code Online (Sandbox Code Playgroud)
不
word1 word2 GENERIC summary message
Run Code Online (Sandbox Code Playgroud)
谢谢
我对Perl和解除引用有一个奇怪的问题.
我有一个带有数组值的INI文件,在两个不同的部分下,例如
[Common]
animals =<<EOT
dog
cat
EOT
[ACME]
animals =<<EOT
cayote
bird
EOT
Run Code Online (Sandbox Code Playgroud)
我有一个子例程将INI文件读入%INI哈希并处理多行条目.
然后我使用$org变量来确定我们是使用公共数组还是使用特定的组织数组.
@array = @{$INI{$org}->{animals}} || @{$INI{Common}->{animals}};
Run Code Online (Sandbox Code Playgroud)
'Common'数组运行正常,即如果$org不是'ACME'我得到的值(狗猫)但是如果$org等于' ACME',我得到2的值?
有任何想法吗??