小编and*_*l73的帖子

Perl:传递正则表达式搜索并使用变量替换

我有一个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)

谢谢

regex perl capture

6
推荐指数
1
解决办法
7637
查看次数

Perl:解除引用数组正在使用标量上下文?

我对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的值?

有任何想法吗??

perl dereference

1
推荐指数
1
解决办法
180
查看次数

标签 统计

perl ×2

capture ×1

dereference ×1

regex ×1