如何在perl one liner中避免错误的变量名解释
我想将apache配置文件的MinSpareThreads指令值从75替换为125 我编写了perl单行程序代码,如下所示如何在perl one liner中避免错误的变量名解释,perl,Perl,我想将apache配置文件的MinSpareThreads指令值从75替换为125 我编写了perl单行程序代码,如下所示 perl -pi.$(date +%Y%m%d) -e 's;MinSpareThreads(\s+)(\d+);MinSpareThreads$1125;g' httpd-mpm.conf 然而,它输出的结果如下 root@8c659a9d5907:/usr/local/apache2/conf/extra# diff httpd-mpm.conf.20180130 h
perl -pi.$(date +%Y%m%d) -e 's;MinSpareThreads(\s+)(\d+);MinSpareThreads$1125;g' httpd-mpm.conf
然而,它输出的结果如下
root@8c659a9d5907:/usr/local/apache2/conf/extra# diff httpd-mpm.conf.20180130 httpd-mpm.conf
46c46
< MinSpareThreads 75
---
> MinSpareThreads
63c63
< MinSpareThreads 75
---
> MinSpareThreads
83c83
< MinSpareThreads 25
---
> MinSpareThreads
97c97
< MinSpareThreads 5
---
> MinSpareThreads
root@8c659a9d5907:/usr/local/apache2/conf/extra#diff httpd-mpm.conf.20180130 httpd-mpm.conf
46c46
<75分钟
---
>米斯帕雷线程
63c63
<75分钟
---
>米斯帕雷线程
83c83
<25分钟
---
>米斯帕雷线程
97c97
<5分钟
---
>米斯帕雷线程
似乎1美元被无意中确认为1125美元。
1125美元不存在。因此,上面的结果被显示出来
您知道如何避免上述错误解释吗?为了在名称与周围文本无法区分的上下文中使用Perl变量,您可以将名称(不包括sigil)放入
{…}
中。因此,您不需要使用$$1125
,而应该使用${1}125
以便在名称与周围文本无法区分的上下文中使用Perl变量,您可以将名称(不包括sigil)放入{…}
中。因此,您将拥有${1}125
,而不是$1125