捕获并解析Whateverable机器人的输出

jjm*_*elo 9 perl6 whateverable raku

由于这是在Perl 6文档中显示输出的标准方法,因此我使用whateverable机器人通过#perl6 IRC通道#whateverable通道来评估表达式.产生的输出是这样的:

 10:28:19   jmerelo | p6: say 333444777 ~~ /(3+)/                                                                                                           ?
 10:28:19 evalable6 | jmerelo, rakudo-moar 5ce24929f: OUTPUT: «?333?? 0 => ?333??»  
Run Code Online (Sandbox Code Playgroud)

(在WeeChat控制台程序中).从那个输出,我剪切并粘贴到文档,擦除我不感兴趣的部分.

我想知道是否有直接解析并保存输出一些简单的方法,无论是通过scriptint的IRSSI或weechat平台服务器为基础的(一些Whateverable机器人保存到间质瘤,例如),或基于客户端.

Ale*_*-A. 10

我认为在这种情况下最方便的解决方案是绕过irc机器人并定义一个bash函数.像这样的东西:

d6() { echo -n '# OUTPUT: «'; perl6 -e "$1" | sed -z 's/\n/?/g'; echo '»'; }
Run Code Online (Sandbox Code Playgroud)

然后你可以像这样使用它:

d6 'say 42'
Run Code Online (Sandbox Code Playgroud)

哪个会产生这个输出:

# OUTPUT: «42?»
Run Code Online (Sandbox Code Playgroud)

当然,您需要为其他操作系统提供不同的解决方案.



作为奖励,您还可以自动将其放入剪贴板:

d6 'say 42' | tee >(xclip -selection clipboard)
Run Code Online (Sandbox Code Playgroud)

  • @jjmerelo嗯,你需要[其他机器人](https://github.com/perl6/whateverable/wiki)的那种格式(面向文档)吗?我认为任何其他机器人的输出都不应该放在文档中.即使是committable(在不同的*rakudo*版本上运行代码)也可能不适用于文档,因为它的输出演示了特定于实现的行为. (2认同)