1. Perl“膠水”,能夠?qū)⒏鞣N應(yīng)用程序或者各種語言的代碼結(jié)合起來。
Perl可以編寫普通的腳本程序,還可以使用cgi模塊編寫Web應(yīng)用程序,同時(shí)可以使用DBI訪問各種數(shù)據(jù)庫。
除此之外,Perl可以將各種層次的應(yīng)用程序粘在一起,發(fā)揮更強(qiáng)大的功能。
2.
前臺是一個(gè)網(wǎng)站W(wǎng)eb應(yīng)用程序,底層或者是后臺是用C,C++或者Java編寫,使用Perl可以將兩者對接起來,實(shí)現(xiàn)更強(qiáng)大的功能,發(fā)揮各自的優(yōu)勢。
Perl實(shí)現(xiàn)該方法的途徑有兩個(gè):
1) 直接在Perl腳本中嵌入別的語言編寫的代碼,這個(gè)可以使用Perl相關(guān)的模塊,比較簡單的是Inline,更能稍強(qiáng)但稍微復(fù)雜的是XS等。
2)另一種,是使用Perl的系統(tǒng)調(diào)用函數(shù)system:
如:
windows下
復(fù)制代碼 代碼如下:
use strict;
my $file="test.txt";
system("edit $file");
#調(diào)用dos的edit工具
system("dir");
等。
另一種寫法:
qx{dir};
捕獲返回的結(jié)果,可以將結(jié)果賦予標(biāo)量或者一個(gè)列表數(shù)組,標(biāo)量的話獲取結(jié)果字符的最后一樣;數(shù)組的話,每個(gè)元素對應(yīng)結(jié)果的每一行。
如:
復(fù)制代碼 代碼如下:
use strict;
my @result=qx{dir};
my $eachline;
foreach $eachline (@result)
{
print "$eachline ";
}
還可以自己編寫exe,然后由perl的system函數(shù)(或者qx)來調(diào)用。
如,可以編寫一個(gè),可給輸入?yún)?shù)的exe程序:
main.c
復(fù)制代碼 代碼如下:
#include stdio.h>
#include stdlib.h>
int main(int argc, char **argv)
//int main(int argc, char *argv[])
{
int i;
for(i=0; iargc; i++)
{
printf("%d arg is %s ",i,argv[i]);
}
return 0;
}
//該程序的主要功能是打印出傳遞給main函數(shù)的各個(gè)參數(shù)。
例子:
復(fù)制代碼 代碼如下:
#!/usr/bin/perl
use strict;
my @result=qx{main.exe hello iam here};
my $eachline;
foreach $eachline (@result)
{
print "$eachline ";
}