【问题标题】:What is that meaning of $testModule =~ s@/@::@ig; in Perl?$testModule =~ s@/@::@ig 是什么意思?在 Perl 中?
【发布时间】:2015-08-04 23:25:17
【问题描述】:

我是perl的新手,正在阅读一些perl代码,发现下面一行我看不懂,谁能告诉我是什么意思

s@/@::@ig 

我知道=~ 正在尝试匹配一些正则表达式。通常我会看到像s/<regular express>//gi 这样的代码,所以我对下面的代码有点困惑。谁能帮忙解释一下?

$testModule =~ s@/@::@ig;

【问题讨论】:

  • 如果我在代码审查中看到这一点,我会建议使用s{/}{::}igs(/)(::)ig 甚至s!/!::!ig,因为@s 可能会破坏语法高亮,并且因为它真的不寻常这样做。

标签: regex perl


【解决方案1】:

您可以使用许多不同的字符作为正则表达式分隔符。

这个使用@ 而不是/,因此它可以使用/ 作为正则表达式中的数据而不转义它。

相当于:

$testModule =~ s/\//::/ig;

有关详细信息,请参阅 Perl 文档中的 quote and quote-like operators

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-09-27
    • 2018-03-05
    • 2010-12-28
    • 1970-01-01
    • 2023-03-25
    • 2022-06-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多