[libwww-perl]——POST方法的使用

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的一些知识点,感觉还是很不错。

你可能感兴趣的:(perl)