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