Ruby 中“触发器已弃用”警告的解决方法

use*_*428 6 ruby shell

我从 shell 脚本中调用 Ruby,如下所示:

ruby -n -e "print if %r($fromre)...%r($tore)" "$@"
Run Code Online (Sandbox Code Playgroud)

从 Ruby 2.6 开始,我收到警告

警告:触发器已被弃用

所以看来我必须做好准备,明智的 Ruby 大祭司已经决定这个(在我看来有用的)构造有一天会完全消失。

什么是简单的解决方法?当然我可以替换

print if %r($fromre)...%r($tore)
Run Code Online (Sandbox Code Playgroud)

经过

inside ||= %r($fromre)
if inside
  print
  inside = false if %r($tore)
end
Run Code Online (Sandbox Code Playgroud)

但我想知道是否有更简洁的方法来写这个。