perl中调用cgi

参考:

http://www.willmaster.com/library/manage-forms/using_perl_to_submit_a_form.php

http://www.oschina.net/code/snippet_12_854

有时需要在perl中非交互地调用已有的cgi来完成一定的功能,此时需要模拟一个http请求来调用cgi。

get方式调用:

1 use HTTP::Request::Common;

2 use LWP::UserAgent;

3 $user_agent = LWP::UserAgent->new;

4 $request = GET 'http://clearcase/~xhzhu/cgi/cgireader.cgi?text1=hello&text2=here';

5 $response = $user_agent->request($request);

6 print $response->as_string;

post方式调用:

1 use HTTP::Request::Common;

2 use LWP::UserAgent;

3 $user_agent = LWP::UserAgent->new;

4 $request = POST 'http://clearcase/~xhzhu/cgi/cgireader.cgi',

5 [text1 => 'Hello', text2 => 'there'];

6 $response = $user_agent->request($request);

7 print $response->as_string;

cgireader.cgi:

1 #!/usr/local/bin/perl

2 use CGI;

3

4 $co = new CGI;

5

6 print $co->header,

7

8 $co->start_html(

9 -title=>'CGI Example',

10 -author=>'yourName',

11 -BGCOLOR=>'white',

12 -LINK=>'red'

13 );

14

15 if ($co->param()) {

16 print

17 "You entered this text: ",

18 $co->em($co->param('text1')),

19 " ",

20 $co->em($co->param('text2')),

21 ".";

22 } else {

23 print "Sorry, I did not see any text.";

24 }

25 print $co->end_html;

完!