## 如何验证 Email 地址是否有效
一般来说,你不能。有一些看起来合理的方法可以使用,但却没有办法检测地址 是否实际可以投递,如果没有实际尝试投递的话。
使用正则表达式:
~~~
# Match basically blah@blah.blah
if ( $addr =~ /^\S+\@\S+\.\S+$/ ) {
print "Looks OK";
}
~~~
如果你干真活的话,可能希望看看 CPAN 上可用的模块,比如: _Email::Address_ 、 _Email::Valid_ 。
## 如何从数据库获得数据
_DBI_ 及其 _DBD_ 子模块,如 _DBD::SQLite_ 。
## 如何从网页获得数据
_LWP_ 意为 _libwww-perl_ ,它是与网页交谈的标准方式。
_WWW::Mechanize_ 是使 HTML 处理更容易的 _LWP_ 的超集。
## 如何做日期计算
使用 _Date::Manip_ 、 _Date::Calc_ 、或 _DateTime_ 。全部都有不同的样式和 不同的能力。
## 如何处理程序的命令行参数
使用 _Getopt::Long_ 。
## 如何解析 HTML
无论你做什么,都不要使用正则表达式。使用 _HTML::Parse_ 或别的类似东东。 如果你解析 HTML 是为了从网页提取链接或图像,不妨使用 _WWW::Mechanize_ 。
## 如何来点颜色
使用 _Term::ANSIColor_ 。
## 如何读取键及不看到输入的密码
使用 _Term::ReadKey_ 。