Perl CGI编程学习笔记
什么是CGI?
CGI (Common Gateway Interface) 是一种在服务器上运行的标准协议,用于在 Web 应用程序中执行脚本。CGI 脚本可以运行在任何支持 CGI 协议的 Web 服务器上。
使用Perl编写CGI脚本
Perl 是一种非常强大的编程语言,被广泛应用于 Web 开发。它特别适合用于编写 CGI 脚本。下面是一个简单的例子:
perlCopy Code#!/usr/bin/perl
use strict;
use warnings;
print "Content-type: text/html\n\n";
print "<html><head><title>CGI Example</title></head><body>";
print "<h1>Hello, world!</h1>";
print "</body></html>";
上述代码创建一个简单的 Web 页面,输出 "Hello, world!"。我们可以将这个脚本保存为 hello.pl
文件,并且确保该文件有可执行权限(如 chmod +x hello.pl
)。
传递参数
在 CGI 脚本中,可以通过查询字符串或 POST 数据来传递参数。例如,以下是一个接收表单数据并输出结果的 CGI 脚本:
perlCopy Code#!/usr/bin/perl
use strict;
use warnings;
use CGI;
my $query = CGI->new;
my $name = $query->param("name");
print $query->header(-type=>'text/html', -charset=>'UTF-8');
print "<html><head><title>Greetings</title></head><body>";
print "<h1>Hello, $name!</h1>";
print "</body></html>";
上述脚本从表单数据中获取 name
参数,并将其输出到 Web 页面中。
文件上传
在 CGI 中,也可以通过表单实现文件上传。以下是一个接收文件并将其保存到服务器上的示例脚本:
perlCopy Code#!/usr/bin/perl
use strict;
use warnings;
use CGI;
my $query = CGI->new;
my $filehandle = $query->upload("file");
my $filename = $query->param("filename") || "upload.txt";
my $filepath = "/var/www/uploads/$filename";
open(my $fh, '>', $filepath) or die "Can't open file: $!";
while (my $chunk = <$filehandle>) {
print $fh $chunk;
}
close($fh);
print $query->header(-type=>'text/html', -charset=>'UTF-8');
print "<html><head><title>File Uploaded</title></head><body>";
print "<h1>File uploaded successfully!</h1>";
print "</body></html>";
上述脚本可以将上传文件保存在服务器上,文件名为表单中的 filename
参数。
总结
Perl 是一种非常适合用于编写 CGI 脚本的语言。在本文中,我们介绍了 CGI 的基本概念和使用 Perl 编写 CGI 脚本的方法。我们还演示了如何传递参数和处理文件上传。希望这些笔记可以帮助你学习 Perl CGI 编程。