Ruby:带-pe的简单命令行不起作用
文件:测试Ruby:带-pe的简单命令行不起作用,ruby,Ruby,文件:测试 test 命令行输入: ruby -pe 'gsub(/t([a-z])s/){"d"+$1.capitalize}' test 我希望输出为dEt,但实际输出为: #<Enumerator:0x00000001c78520> 这原来是一个Ruby bug 我在两天前提交了一份错误通知单,他们已经解决了 以下是错误通知单的链接(它现在是一个后端口): 以下是主干的新更改日志: 这应该是可行的(请参阅),但Ruby忽略了该块。它适用于1.9.3中的非块形式,也适用于
test
命令行输入:
ruby -pe 'gsub(/t([a-z])s/){"d"+$1.capitalize}' test
我希望输出为dEt
,但实际输出为:
#<Enumerator:0x00000001c78520>
这原来是一个Ruby bug 我在两天前提交了一份错误通知单,他们已经解决了 以下是错误通知单的链接(它现在是一个后端口): 以下是主干的新更改日志:
这应该是可行的(请参阅),但Ruby忽略了该块。它适用于1.9.3中的非块形式,也适用于1.8.7中的任何一种形式。您可以使用
$\uuu0.gsub!(…){…}
在必要时对ruby-pe
大脑造成损害。@muistooshort为什么ruby会忽略该块?是虫子吗?我叫它虫子。不过我还没找到任何官方记录。@muistoshort我开了一张虫子票。现在正在等待回复。酷,我在猜测,但那只是一个疯狂的猜测。顺便说一句,你可以接受你自己的答案。@muistoshort是的,这和你说的一模一样。他们将rb\u funcall3
更改为rb\u funcall\u passing\u block
。我下载了新代码,它工作得很好:)
"test".gsub(/t([a-z])s/){"d"+$1.capitalize}