perl 庫一般在這樣的資料夾下:
/usr/local/lib/perl5/your_architecture_here/core可以這樣得到它的位置:
perl -mconfig -e "print $config"編譯的時候要這樣:
% gcc -o2 -dbool=char -dhas_bool -i/usr/local/include -i/usr/local/lib/perl5/i586-linux/5.003/core -l/usr/local/lib/perl5/i586-linux/5.003/core-o interp interp.c -lperl -lm
要選擇合適的編譯器,這個會告訴你用什麼編譯器:
perl -mconfig -e "print $config"你還要選好庫資料夾。編譯器說找不到某某函式,可能要通過 "-l" 選定目錄。如果它說找不到 "extern.h" 和 "perl.h",你可能需要通過 "-i" 改變路徑。
一些其它的庫也需要加入,可以通過這樣得到:
perl -mconfig -e "print $config"可以通過這樣編譯:
% cc -o interp interp.c `perl -mextutils::embed -e ccopts -e ldopts`perl( c 程式 ) 就是乙個嵌入 perl( 語言 ) 的很好的例子。這是乙個簡單的例子。
#include注意到 env 引數沒有用到。/* from the perl distribution
*/#include
/* from the perl distribution
*/static
perlinterpreter
*my_perl
; /***
the perl interpreter **
*/int
main
(int
argc
, char
**argv
, char
**env
)
perl_sys_init3() 和 perl_sys_term() 提供乙個執行環境。
/*showtime 是乙個沒有引數也沒有返回值(g_noargs, g_discard)的 perl 函式。showtime.c
*/#include
#include
static
perlinterpreter
*my_perl
;int
main
(int
argc
, char
**argv
, char
**env);
perl_sys_init3(&argc,&argv,&env);
my_perl = perl_alloc();
perl_construct(my_perl);
perl_parse(my_perl, null
, argc, argv, null
); pl_exit_flags |= perl_exit_destruct_end;
/***
skipping perl_run() **
*/ call_argv("showtime"
, g_discard | g_noargs, args);
perl_destruct(my_perl);
perl_free(my_perl);
perl_sys_term();
}
#在這個例子中,我們沒有呼叫 perl_run。! /usr/bin/perl -w
# showtime.pl
"i shan't be printed."
;sub
showtime
#include結果輸出:#include
static
perlinterpreter
*my_perl
;main
(int
argc
, char
**argv
, char
**env);
perl_sys_init3(&argc,&argv,&env);
my_perl = perl_alloc();
perl_construct( my_perl );
perl_parse(my_perl, null
, 3, embedding, null
); pl_exit_flags |= perl_exit_destruct_end;
perl_run(my_perl);
/**
treat $a as an integer *
*/ eval_pv("$a = 3; $a **= 2"
, true);
printf("a = %d/n"
, sviv(get_sv("a"
, false)));
/**
treat $a as a float *
*/ eval_pv("$a = 3.14; $a **= 2"
, true);
printf("a = %f/n"
, svnv(get_sv("a"
, false)));
/**
treat $a as a string *
*/ eval_pv("$a = 'rekcah lrep rehtona tsuj'; $a = reverse($a);"
, true);
printf("a = %s/n"
, svpv(get_sv("a"
, false), n_a));
perl_destruct(my_perl);
perl_free(my_perl);
perl_sys_term();
}
在perl中嵌入shell命令
在linux中,如果要把幾個可執行程式結合起來使用,一般是採用shell或者perl,當然,python也可以。這裡說一下在perl裡嵌入shell命令的情形。一般來說,最簡單的方式就是採用 qx 就可以執行命令 1 2 cmd du sh cmd 這樣命令就執行了,但是卻並沒有輸出。要輸入的話,簡...
在notepad 中編寫perl程式並直接執行
原文發表在網易部落格 2010 10 31 17 26 00 最近在學習perl,先前一直用eclipse寫程式的,不過在網上找eclipse上的perl外掛程式,半天安裝不上,就先用notepad 寫了吧,反正都是簡短的程式.後面在網上找到可以在notepad 中配置呼叫perl執行正在編寫中程式...
C 在Panel中嵌入子窗體
關閉嵌入的其他窗體 foreach control item in this.splitcontainer.panel2.controls 開啟新窗體 frmaddproduct newfrm new frmaddproduct form newfrm new form newfrm.topleve...