【问题标题】:Why is Perl pos() always returning undef?为什么 Perl pos() 总是返回 undef?
【发布时间】:2021-08-07 05:08:29
【问题描述】:

Perl v5.26.3

我不明白为什么这不起作用。

#!/usr/bin/perl
use strict;
use warnings;
use Data::Dumper;

my $var = "one two three four";
$var =~ m/three/i;
print $var . "\n";
print Dumper(pos($var));
print Dumper(@-);
print Dumper(@+);

我不明白为什么pos 总是返回undef,无论我尝试什么。这种情况下不应该和@+一样吗?

# Output from code
one two three four
$VAR1 = undef;
$VAR1 = 8;
$VAR1 = 13;

【问题讨论】:

    标签: perl


    【解决方案1】:

    来自the documentation of pos

    返回上次 m//g 搜索停止的位置的偏移量...

    您的代码中没有m//g。只有m//,没有/g 修饰符。添加后,pos 返回预期值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-11-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-24
      • 1970-01-01
      • 2014-09-12
      • 2016-09-16
      相关资源
      最近更新 更多