perl元字符的混淆

Pra*_*mar 0 perl metacharacters

当我运行以下程序时,它没有给我任何结果("").
情景1: -

$var = "A STITCH IN TIME SAVES NINE";
       if ($var =~ /[1..9]/i) {
         print "FOUND\n"
      }
Run Code Online (Sandbox Code Playgroud)

但是当我在'..'运算符之前和之后添加空格时,它会抛出"Found and is"作为结果.

情景: - 2

 $var = "A STITCH IN TIME SAVES NINE";
           if ($var =~ /[1 .. 9]/i) {
             print "FOUND\n"
          }
Run Code Online (Sandbox Code Playgroud)

谁能解释一下这里发生了什么?

Que*_*tin 5

当我运行以下程序时,它没有给我任何结果("").

字符串不包含1,句号或9.模式与字符串中的任何内容都不匹配.

但是当我在'..'运算符之前和之后添加空格时,它会抛出"Found and is"作为结果

它确实包含多个空格.当您扩展角色类以匹配包含空格时,它会匹配.

我在声明中也包含"$ i",但它仍然没有显示任何价值.

你永远不会定义$i.你只想尝试阅读它.