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的一些知識點,感覺還是很不錯。
新聞熱點
疑難解答