新聞中心
Perl,一種功能豐富的計(jì)算機(jī)程序語言,運(yùn)行在超過100種計(jì)算機(jī)平臺(tái)上,適用廣泛,從大型機(jī)到便攜設(shè)備,從快速原型創(chuàng)建到大規(guī)??蓴U(kuò)展開發(fā)。

Perl 語言的應(yīng)用范圍很廣,除CGI以外,Perl被用于圖形編程、系統(tǒng)管理、網(wǎng)絡(luò)編程、金融、生物以及其他領(lǐng)域。由于其靈活性,Perl被稱為腳本語言中的瑞士軍刀。
利用注釋調(diào)試:使用 Smart::Comments 模塊
調(diào)試 Perl 腳本有兩種方式:一種是使用 Perl 的內(nèi)置調(diào)試器,另一種是在腳本中嵌入 print 語句。如果是第二種,大概就會(huì)了解到,像那樣手工調(diào)試的最大問題是:一旦移除了 bug,就得也同時(shí)通篇移除調(diào)試語句。但是如果能將這些語句安全地留在代碼里不是更好嗎?畢竟很可能再此需要他們,特別是當(dāng)又有 bug 出現(xiàn)的時(shí)候。
現(xiàn)在,在 Perl 里有這樣一個(gè)模塊:它可以利用注釋來開啟調(diào)試語句,這就是 Smart::Comments 模塊。下面是最簡(jiǎn)單的示例,當(dāng)使用 Smart::Comments 時(shí),任何由三個(gè)或更多個(gè) # 開頭的注釋就會(huì)變成調(diào)試語句,并會(huì)把注釋的所有內(nèi)容送到屏幕:
#!/usr/bin/perl
use Smart::Comments;
my @ipaddr = split /\./, "10.109.32.151";
### @ipaddr;
當(dāng)執(zhí)行這段代碼后,Smart::Comments 會(huì)找到三個(gè)一組的 # 注釋,并打印出它們所包含的所有內(nèi)容:
### @ipaddr: [
### '10',
### '109',
### '32',
### '151'
### ]
Smart::Comments 的用法不只限于打印變量值,它甚至可以在代碼的循環(huán)部分用進(jìn)度條的形式動(dòng)態(tài)現(xiàn)實(shí),更加詳細(xì)的描述,請(qǐng)參考 perldoc 文檔。
一次讀入整個(gè)文件的技巧
我想你一定知道 Perl 中的鉆石操作符()。所以如果想把文件一次性讀入是,應(yīng)該首先修改 $/ 變量:
open CONF, ", $file; my $text = do { local $/; };
模塊 File::Slurp 中有關(guān)于文件操作的更多方式。
封裝 SQL 語句:不要直接在代碼中使用 SQL 語句
對(duì)于向數(shù)據(jù)庫中插入數(shù)據(jù)的操作,可以使用下面代碼來實(shí)現(xiàn) SQL 語句:
sub insert {
my ($table, $data) = @_;
my $sql = "insert into `$table` ";
my $insert_fields = join ", ", map { "`$_`" } keys %$data;
my $insert_values = join ", ", map { "'$_'" } values %$data;
$sql .= join " ", "(", $insert_fields, ") ";
$sql .= join " ", "values ", "(", $insert_values, ")";
# open a database and return $dbh
my $sth = $dbh->prepare($sql);
$sth->execute() or die;
$sth->finish();
}
調(diào)用時(shí)只需要依據(jù)表名和哈希數(shù)據(jù)即可:
my %data = (
name => "Alice",
age => "23",
country => "U.S.",
);
insert "student", \%data;
利用列表賦值交換兩個(gè)變量的值
我們知道一般情況下如果需要交換兩個(gè)變量的值,那么需要使用一個(gè)臨時(shí)變量才能完成,但是在 perl 中,可以這么做:
my ($foo, $bar) = ("foo", "bar");
($foo, $bar) = ($bar, $foo);
名稱欄目:詳解Perl編程技巧
當(dāng)前網(wǎng)址:http://m.5511xx.com/article/cdsgdjc.html


咨詢
建站咨詢
