perl编写CGI 尝试

一直觉得perl写网页是一件很原始的事情,编写CGI-使用perl的书刚借来就弄丢了。后来帮群里的小朋友讨论到CGI,觉得有点意思,就尝试学了一下,编写了一个简单的,保存邮件列表,和现实邮件列表的就简单CGI,如下:
#!/opt/lampp/bin/perl
use CGI;
use Data::Dumper;
use Storable;
my @values=('CharityBase','Linux kernel mailing list','MailChimp','Melissa Data');
our  $q        = CGI->new();
my $name =$q->param("name");
my $mail=$q->param("mail");
my $list=$q->param("organnisation");
print $q->header;
print  $q->start_html({-title=>"Join a Mainlist"}  );
if($q->param("all")  )
{
#display name list
	my $allhash1 = retrieve('datafile');
    print $q->h1( {-align => 'CENTER' },'This all mail list!');
	foreach $tmp1 (@values)
	{
            print $q->h3("$tmp1");
       		my $firstlist= $allhash1->{$tmp1};
        	foreach (@$firstlist){
           	printf $q->ul( $q->li("%s (%s)") ), $_->{name},$_->{mail};
        	}
	}
} else {
	if ($q->param('submit') ){
	    
        if(-s 'datafile' == 0){
	        my $tmphash={};
	        foreach my $key (@values)
	        {
	        $tmphash->{$key}=[];
	        }
	        store $tmphash,'datafile';
	    }
        my $allhash = retrieve('datafile');
	    my $element = {
           name =>$name,
           mail =>$mail,
          };
        push @{$allhash->{$list}}, $element;
	    store $allhash,'datafile';
	}
    
    print $q->h1( { -align => 'CENTER' }, "Sign Up Free!" );
	print $q->start_multipart_form({-action=>"test.cgi",-method=>"POST"});
	print $q->p('Please Enter your name', $q->textfield({-name=>"name",-value=>''}),);
	print $q->p('Please Enter your mail', $q->textfield({-name=>"mail",-value=>''}),);
	print $q->p('Please choose:',$q->popup_menu({-name=>'organnisation',-values=>\@values, }),);
	print $q->p(  $q->submit({-name=>"submit",-value=>'submit'}),
		  $q->reset({-name=>"reset",-value=>'clear'}),
	      $q->submit({-name=>"all",-value=>'show all list '}),
				);
	print $q->end_form();
}


	 print $q->end_html;





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值