代码之家  ›  专栏  ›  技术社区  ›  sid_com

“$^N”和“$+”有什么区别?

  •  5
  • sid_com  · 技术社区  · 15 年前

    有人能给我举个例子来说明这两个变量($^N和$+)的不同行为吗?

    1 回复  |  直到 15 年前
        1
  •  8
  •   Sinan Ünür    15 年前

    perldoc perlvar :

    $+ :与上次成功的最后一个括号匹配的文本 搜索模式。

    $^N :与最近关闭的已用组匹配的文本(即。 最后一个右括号为的组 成功的搜索模式。

    这应该说明了区别:

    #!/usr/bin/perl
    
    use strict; use warnings;
    
    my $s = '12345';
    
    if ( $s =~ /(1([0-9]))/ ) {
        print "$_\n" for $+, $^N;
    }
    

    输出:

    2
    12