libwww-perl是我在学习varnish的时候遇到的一个工具。
具体libwww-perl是干什么的,可以参考官网https://github.com/libwww-perl/libwww-perl。
README中有详细的解释。
这篇随笔不是为了详细说明这个lib怎么使用,而是记录下在使用POST方法的时候遇到的问题,以及相应的解决思路(备忘)。
在输入POST -Use http://192.168.0.101/signin后,需要输入post的参数和值,但是输完后,点击回车以及其它各种各样的操作都不能继续执行。
只有Ctrl+C可以退出程序,但这没办法得到自己想要的执行结果。
第一步,上网搜,搜各种libwww-perl, POST相关的信息。
但没有获得相关的解决办法(也可能是我搜的不够仔细),不过获得了几条有用的信息:
1. libwww-perl是perl语言写的;
2. 源代码地址https://github.com/libwww-perl/libwww-perl
3. POST方法属于lwp-request module
第二步,既然找不到解决办法,那就利用上面的信息自己找吧。
1. 首先根据第一步中的2和3,以及在运行POST方法时,显示的输出,获得POST方法的源代码
在https://github.com/libwww-perl/libwww-perl/blob/master/bin/lwp-request文件中
print STDERR "Please enter content ($options{'c'}) to be ${method}ed:\n" if -t; binmode STDIN unless -t or $options{'a'}; $content = join("", <STDIN>);
2. 从上面知道原来是卡在perl的STDIN上了,问题变成了:不知道怎么退出perl程序的STDIN
3. 继续上网搜,原来Ctrl+D 和Ctrl+Z可以退出perl程序的STDIN (不懂perl语言惹的祸啊。)
第三步,继续进行自己下面的工作。
整个问题最终是由于一个很小的知识点引起的,这个真的是没办法,自己学的少了。
不过通过这个问题,了解了libwww-perl这个工具,已经perl的一些知识点,感觉还是很不错。