Ruby - 未定义的局部变量或方法“_1”

Ruby - undefined local variable or method `_1'

当我 运行 以下代码时出现错误 undefined local variable or method '_1' for main:Object。知道为什么我会收到此错误吗?以及如何将结果存储在变量中。

result="-e hostname=webserver001 -e username=root -e password=testing123"

p result.scan(/\w+=\w+/)
        .map { _1.split("=") }
        .to_h

Error:

Traceback (most recent call last):
    2: from main.rb:4:in `<main>'
    1: from main.rb:4:in `map'
main.rb:4:in `block in <main>': undefined local variable or method `_1' for main:Object (NameError)
exit status 1

您可能 运行 是 ruby 的旧版本 - 自 2.7 以来,块的编号参数在 ruby 中可用 - 请参阅 https://www.bigbinary.com/blog/ruby-2-7-introduces-numbered-parameters-as-default-block-parameters

您可以使用

使其在旧版本上运行
p result.scan(/\w+=\w+/)
        .map { |s| s.split("=") }
        .to_h