來源:php
http://my.oschina.net/alphajay/blog/52172css
http://www.cnblogs.com/baiyanhuang/archive/2009/11/09/1730726.htmlhtml
Perl調試器的用法:
缺省的Perl調試器就是perl解釋器自己,另外還有圖形界面的調試器。由於咱們在開發程序時通常都使用telnet訪問服務器,因此這裏主要介紹一下缺省的命令行調試器的用法。python
用-d 命令行選項啓動Perl解釋器,例如
perl -d test.pl 即進入Perl調試器的交互界面。 nginx
調試命令列表以下:(全部命令都在調試提示符下頂格輸入,命令大小寫有關)
h:顯示調試器的幫助信息。
|h:以分頁形式顯示調試器的幫助信息。
h h:顯示一個壓縮的幫助信息。
h 調試命令:顯示某個調試命令的幫助。
p 表達式:顯示變量或表達式的值,不顯示覆雜變量嵌入的結構和數據。
x 表達式:顯示變量或表達式的值,對較爲複雜的變量,以一種可讀形式顯示嵌入的結構和數據。
V 包名 變量名列表:顯示指定包內的全部(或部分)變量的值。(缺省的包名爲 main)
X 變量名列表:顯示當前包內全部(或部分)變量的值。
注:V、X命令中的變量名列表以空格分隔且變量名前應去掉$、@或%
T:程序的調用棧回退一級。
s 表達式:單步執行,進入子函數。(step into) 若是提供一個表達式而且表達式中包括函數調用,則單步進入該函數內。
n 表達式:單步執行,越過子函數。(step over) 若是提供一個表達式,則只是表示執行本表達式。
c 行號/函數名:執行到某一行或某一個函數停住。 行號/函數名若是沒有,則表示繼續執行。
l:顯示未執行的一窗(一屏)文件內容。
l min-max:顯示第min到第max行的文件內容。
l 行號:顯示指定行的內容。
l 函數名:顯示指定函數的一窗(一屏)文件內容。
w 行號:顯示某行周圍一窗(一屏)文件內容。
f 文件名:切換到另外一個文件。
/模式:在當前文件中向前(文件尾)查找匹配的字符串。
?模式:在當前文件中向後(文件頭)查找匹配的字符串。
L:顯示全部斷點和附加操做。
S 模式:顯示匹配(或不匹配,在模式前加!)的函數名。
t:切換跟蹤模式。
t 表達式:跟蹤執行表達式過程。
b 行號 條件:在某一行設置一個斷點,當程序執行到該行而且條件知足時,產生中斷。 條件可省,表示一直知足。
b 函數名 條件:在某函數上設置一個斷點,當程序執行到該函數而且條件知足時,產生中斷。 條件可省,表示一直知足。
b load 文件名:在某個文件的第一個可執行語句上設置一個斷點。
d 行號:刪除某一行的斷點。
D:刪除全部斷點。
a 行號 命令:給程序的某一行加一個附加操做。在執行該行語句前先執行附加的操做。
A:刪除全部已安裝的附加操做。 git
W 表達式:增長一個監視項。
W:刪除全部監視項。
O 選項名?:查詢調試器可選項的值。
O 選項名=選項值:設置調試器可選項的值。
lt Perl語句:設置一個操做顯示調試提示符前執行的操做。
ltlt Perl語句:增長一個顯示調試提示符前執行的操做。
gt Perl語句:設置一個離開調試提示符(轉入運行態)時執行的操做。
gtgt Perl語句:增長一個離開調試提示符(轉入運行態)時執行的操做。
{ 調試命令:設置一個操做顯示調試提示符前執行的操做。
{{ 調試命令:設置一個操做顯示調試提示符前執行的操做。
注:上述Perl語句和調試命令都可輸入多行,行尾以/轉義。
!number:從新執行之前第number次執行的調試命令。
!-number:從新執行如今之前number次執行的調試命令。
!模式:從新執行之前執行過的與模式匹配的調試命令。
!!命令:不退出調試器執行一個shell命令。
H-number:顯示之前執行的number條調試命令。若是省略number,則顯示全部執行過的
調試命令。
R:從新啓動正在調試的程序。
q或^D:退出調試器。
|調試命令:將調試命令的輸出分頁顯示。
||調試命令:相似|調試命令,適於有大量輸出的調試命令,例如:|V main。
= 別名 值:給某個調試命令一個別名,例如:= quit q。 程序員
source 文件:執行文件中的perl調試命令github
全部未識別的命令:看成插入的一條Perl語句執行。(使用eval)
Perl調試器的功能還有不少,能夠設置不少選項來定製調試器的環境,它自己也是用Perl開發的,而且Perl發佈中還有接口讓你能開發其它的Perl調試器。正則表達式
若是要用Perl開發大的項目,有必要詳細瞭解這些細節。使用調試器和設置調試器選項的例子請參考Perl發佈中關於perldebug的文檔。shell
perl -d filename
這句是進入perl的調試命令
而後屏幕上會出現以下字樣:
Enter h or `h h' for help, or `man perldebug' for more help.
main::(filename:linenumber)
linenumber: content;
DB<1>
filename即所調試的文件名,linenumber顯示的是當前調試語句的行號,content也即當前調試的語句,DB<1>後跟着黑色小方塊的光標 <>中的1表示準備執行第幾條調試命令
一、此時能夠輸入n,至關於Visual Studio中的F10,進入下一句的調試
二、若是想直接運行到第N行語句,能夠在第N行處設置一個斷點:b N (將N替換爲須要設置斷點的行
號),回車後斷點設置成功,能夠輸入L來查看所設置的全部斷點狀況,不想查看也能夠直接輸入c,
回車後就直接運行到設置斷點的語句處了
三、想要刪除斷點能夠用 B N (將N替換爲須要設置斷點的行號),回車後所在行處的斷點即被刪除,
也能夠經過B *來刪除全部的斷點
四、想要查看變量的值,經過print 變量名 就能夠查看了
五、也能夠經過給變量賦值來直接改變調試中腳本里的變量的值,好比直接輸入:$debug = 0,這樣
$debug的值就被賦爲0了
六、退出調試,只要輸入q便可
來源:http://www.cnblogs.com/itech/p/5284739.html
b line_number
b line_number file_path_name
b function_name
b function_name file_path_name
f file_path_name
b file_path_name:function_name
具體幫助參見:
http://docs.activestate.com/activeperl/5.8/lib/pods/perldebug.html
這是一個由ActiveState發佈的針對動態語言的跨平臺的集成開發環境。
所謂跨平臺,其支持所謂Mac,Linux,Windows;
所謂集成開發環境,其支持代碼編輯與調試
所謂動態語言,其除了支持perl,還支持狂多其餘動態語言,如python,TCL, Ruby,PHP, Google Go, PHTML/CSS and JavaScript.等等。
[Tools]-[Add-ons]那邊能夠下到Emmet(formerly Zen Coding) (是一個toolkit,可以提升HTML&CSS的編碼速度)
熟悉Visual Studio的同窗可能會以爲很面熟。
詳細說明能夠參考其官方網站:https://www.activestate.com/komodo/
下載地址是:https://www.activestate.com/activeperl_pro_studio/downloads/
這的確是一個很是強大的工具,可是295$的價錢實在拒人於千里。21天的試用期到了,你的腳本還沒完成,怎麼辦?
通常來講,每個成功的商業軟件背後,都會有一個好用(至少是可用)的免費軟件。對於調試perl,咱們至少仍是另一個選擇:
官網:http://komodoide.com/
Komodo supports all your major languages, including Python, PHP, Go, Perl, Tcl, Ruby, NodeJS, HTML, CSS, JavaScript and more.
Komodo IDE收費的(能調試perl),Komodo Edit是免費的(不能調試perl)。
Komodo Edit是開源免費的高級文本編輯器,基於Mozilla XUL開發,完美跨平臺,支持Windows,Linux,Mac,爲Linux提供有通用二進制版本,解壓即用.
Komodo佔用的內存至少比Java based IDE少1倍,速度也更快,界面也更美觀,對輸入法兼容良好.
好比Komodo Edit在PHP文件裏支持PHP/HTML/CSS/JS(jQuery等庫)智能提示,支持語法錯誤提示,經過使用第三方擴展NST實現函數變量列表.
不管你是PHP/Python/Ruby開發者,Komodo Edit都值得一試.Komodo還提供有21天試用的商業付費的Komodo IDE,不妨一試.
free 21-day trial.
If you're looking for an IDE and want to use Perl Dev Kit (PDK), then ActivePerl Pro Studio is the right product for you. You get licenses for PDK and Komodo IDE
不過我有9.0的破解版,很好用!
N++是個Windows下比較好用也比較有名的編輯器了,這裏再也不贅述,不熟悉的同窗能夠參考這裏。 Notepad++比Ultraedit強(除了沒有列出選中列表功能外)
固然,您要喜歡Komodo IDE的風格,它們提供了一個免費的Komodo Edit.
編輯器有了,調試器的任務就由ptkdb承擔了:
ptkdb is a free/open source debugger for Perl with graphical user interface (GUI) based on Perk/Tk.
ptkdb is able to run on almost any operating system.
免費,跨平臺,有GUI,應該是能夠知足咱們的要求了。
<
固然,其界面美觀度和可操控性都沒有Komodo IDE來的好,可是滿足吧,有這麼一個免費的工具用,已經很不錯了。
下面介紹一下如何配打造這套"土IDE"
ppm install tk
ppm install devel::ptkdb若是用此命令安裝失敗的話,咱們須要手動下載並將模塊解壓到:C:\Perl\Lib\Devel,固然,請把C:\Perl替換爲你的安裝路徑。
perl -d:ptkdb test.pl
但既然咱們在Notepad++中開發腳本,而Notepad++提供了與外部工具集成的機制,咱們就能夠很是方便的執行一個菜單命令來調試當前的腳本: Perl.exe -d:ptkdb "$(FULL_CURRENT_PATH)"
忽然間有本身寫個perl IDE的衝動~~~
若是是調試CGI,可能要本地運行一個X Windows服務器。
關於調試CGI,參見《CGI編程-使用Perl》 P420
參見:
來源:http://www.ibm.com/developerworks/cn/opensource/os-cn-ecl-epic/
這篇文章將詳細介紹 EPIC 組件的安裝,EPIC 編輯環境,調試運行環境,着重介紹如何使用 EPIC 來快速、簡便、準確地調試 Perl 語言程序,包括對於 Perl 程序的單步執行,斷點用法,局部、全局變量實時監控,子函數執行監控,錯誤以及警告信息實時顯示等等內容。利用 EPIC 強大編輯以及調試功能,能夠將 Perl 語言適合花短期完成程序的特色發揮地淋漓盡致,爲 tester 的自動化測試腳本提供更加人性化的設計、調試環境。
Perl 語言是衆所周知的一種編程語言,被普遍地用於平常生活的方方面面,它從最先的文本處理語言開始,已經發展成爲一種很是複雜得,通用得編程語言。由於 Perl 幾乎能夠在任何地方運行,因此 Perl 能夠說是當今最具備移植性得編程環境。Perl 擅長寫那些須要在短期內完成的程序,對於那些須要數十個程序員,花費數年的程序,Perl 也能很好地勝任,固然,更多的狀況是你將寫那些從開始構思到實際測試代碼只需幾十分鐘的程序,Perl 被設計爲:90% 處理文本,10% 針對其它狀況。Perl 語言的這一系列特色,爲自動化測試腳本的實現提供了無與倫比編程環境,能夠說 perl 語言是自動化測試腳本的‘溫牀’。做爲一名 tester,利用 perl 語言編寫自動化測試腳本是一件酣暢淋漓得快事,可是對於編寫好的 perl 程序腳本,目前有個問題擺在咱們面前,那就是 Perl 語言程序的調試實在是一個使人崩潰的過程,許多 Perl 程序的語法檢查以及運行中間結果都須要依靠若干沒有實際用途的打印語句來實現,基於這一特色,Perl 程序調試又被世人戲謔爲‘死後驗屍式調試’。面對 Perl 語言的這一問題,基於 Eclipse 平臺的插件 EPIC 誕生了,做爲開源軟件 Perl 語言的 IDE( 包括編輯器和調試器 )。能夠應用於 windows, Linux 以及 Mac 平臺。不管是 CGI 腳本仍是複雜地擁有數百個模塊的 perl 程序項目,它豐富的功能均可覺得您提供快捷,便利的實時調試環境。
這篇文章將詳細介紹 EPIC 組件的安裝,EPIC 編輯環境,調試運行環境,着重介紹如何使用 EPIC 來快速,簡便,準確地調試 Perl 語言程序,包括對於 Perl 程序的單步執行,斷點用法,局部、全局變量實時監控,子函數執行監控,錯誤以及警告信息實時顯示等等內容。利用 EPIC 強大編輯以及調試功能,能夠將 Perl 語言適合花短期完成程序的特色發揮的淋漓盡致。爲 tester 的自動化測試腳本提供更加人性化的設計環境。
安裝以前須要準備幾個重要的組件:
版本要求是 5.8.X 或是 5.6.X,大多數 UNIX/LINUX 安裝包都包括了 Perl 語言編譯器的選裝包,對於 Windows 平臺,能夠去指定網站下載相應的安裝包 www.activestate.com
在安裝 EPIC 插件以前,選擇一個最新版本 Eclipse 進行安裝是必不可少的步驟,
對於 Eclipse 的版本最低要求是 version 3.1,能夠從 [http://www.eclipse.org] 下
載 Eclipse 安裝包。
因爲 Eclipse 安裝包不包括 Java Runtime Environment(JRE),爲此,咱們還須要安裝
Java 1.4.1 或是更高版本的 Java。
這個模塊不是必需要裝的,它的功能就是在 Debug Perl 程序的過程當中,監視全局變量的值。怎麼樣?不能實時監視全局變量的值是任何一個程序員沒法忍受的‘減配’吧,爲了發揮 EPIC 比較完整調試功能,千萬不要拉下這個模塊。能夠從 CPAN (PadWalker 0.10) 下載這個包,若是是在 window 平臺,能夠從 EPIC homepage 下載該模塊。
使用 Eclipse 軟件的 Eclipse Update Manager 功能去安裝 EPIC。
打開 Eclipse, 進入菜單 Help->Software and Updates ->Find and Install...
如圖 1 所示:
選擇「Search for new features to install」 選擇 Next,
選擇「Add Update Site... 「,在彈出一個對話框中填寫用戶名和有效的 URL: http://e-p-i-c.sf.net/updates.,
如圖 2 所示:
繼續選擇’ Next ’ , 直到完成。
EPIC 提供了多功能的編輯器,能夠方便用戶編寫 perl 程序,提供了語法高亮顯示、語法即時檢測、錯誤以及警告信息註釋、Perldoc 查詢、變量檢查、模塊檢查、源碼摺疊等一系列功能,對於編寫測試自動化腳本的工程師,書寫腳本是整個測試工做的很麻煩的一部分,咱們都但願有這個一個利器,能方便快捷地處理這些工做,很幸運,EPIC 幫咱們實現了這一切。如圖 3 所示:
如圖 4 所示:
4. 選擇‘ Next ’
5. 在彈出的面板中,單擊‘ Browse ’選擇要輸入文件所在的文件夾,輸入文件將會出如今面板上,在此,單擊文件前面的複選框,就能夠選擇要輸入到工程中去的文件。如圖 5 所示:
6 .單擊‘ Finish ’完成當前工做。
在 Eclipse 環境中,調用 Perl 語言編譯器來運行調試工程文件,就必須作相應配置,單擊菜單‘ project ’,選擇‘ Properties ’,將上一步輸入工程的文件的絕對路徑填寫到彈出面板右側編輯區。如圖 6 所示:
首先,對於選中的工程文件,在 EPIC 主界面上選擇菜單‘ Run ‘,並在彈出下拉框中選擇’ Open Debug Dialog ’,再修改以下配置(選擇工程以及要調試的文件):
如圖 7 所示:
對於 Perl 程序的運行調試都須要添加 Program Argument,咱們能夠爲新建項目增長 Argument,EPIC 插件也提供了這方面的接口,打開 Debug 對話框,並在項目中 argv items in 「(x)= Arguments」 添加相應的 Argument。如圖 8 所示:
任何程序的調試與運行都是密不可分的,從程序工程師的角度來看,一個程序從編寫完畢到最後成功完成,都是一個運行、修改、調試、再運行、再修改、再調試。。。
的過程。EPIC 提供了完整的調試運行環境。
對於選中的工程文件,在 EPIC 主界面上選擇菜單‘ Run ‘,並在彈出下拉框中選擇’ Run ’,如圖 9 所示:紅線框住的區域表示程序的整個運行過程和結果均可以看到。
相比較運行程序而言,這一過程顯得複雜得多,這也是這篇文件的精髓所在,前面都是爲這一步在作必要地鋪墊。對於程序員而言,調試程序是不可避免的,一般將要調試的線程掛起,而後利用單步執行方式來實現對整個程序的一行一行代碼地執行,同時,觀察每一步運行的結果,以及掌握運行過程當中變量的變化狀況。
EPIC 提供了多種調試操做功能以方便用戶實如今編程中的切實需求,包括單步執行、跳入子函數、跳出子函數、斷點設置、斷點取消、直接執行語句段直至斷點位置等等。
4. 若是要直接後臺執行到最近的下一個程序斷點位置可使用快捷鍵‘ F8 ‘來實現這一功能。
在主界面中選擇菜單‘ Run ‘ -> ’ Debug ’ , 就進入程序調試狀態了,咱們能夠選擇調試操做方
式,包括單步執行、跳到最近的下一個斷點再執行,跳入子函數等等,針對這些操做過程當中,
對於工程師來講,始終關注的都是整個程序的運轉狀況以及掌握每一步執行操做完成後相關變
量的變化狀況,爲此,咱們有必要介紹一些視圖,利用這些視圖,咱們能夠更好的掌握程序的
調試情況,以利於下一步操做。
首先,進入調試界面接口,能夠在主界面中選擇:Window-> Show View ->Debug,在彈出來的
視圖裏,能夠管理在工做區的正在被調試或是運行程序,它顯示了一個工程框架、工做過程當中
的程序運行情況等等。如圖 10 所示:
變量視圖可以顯示程序在運行過程當中的變量的值以及其實時變化狀況,這一功能對於調試工做來講是尤其重要的,變量是程序的‘血液‘,程序代碼就是經過變量來鏈接的,掌握變量的狀況,就是掌握整個程序的運行情況。
在變量視圖裏面,能夠看到變量棧的框架結構,它顯示變量的原始狀態,包括結構體變量、哈希變量、list 變量或是對象等等。
全局變量(包括 Perl 內部變量)都有特定圖標 , 標註,本地變量有特定圖標 (如前文
介紹,本地變量必須是安裝了 PadWalker 模塊才能看見)。
如圖 11 所示:
斷點視圖能夠顯示該程序文件中全部的斷點、它們的狀態以及位置。在這個視圖裏,能夠經過選擇一個或斷點,並激活對應斷點的程序文本框,來設定、使之無效或是取消斷點。
如圖 12 所示:
綜上所述,咱們已經看到了一個集編輯、編譯、調試 Perl 程序爲一體的圖形化的工具,它解決了若干年來一直困擾着測試工做者的對於 Perl 語言編寫自動化腳本‘調試難’的問題。它簡潔明瞭、功能強大的編輯環境也給 Perl 語言編程者帶來了世外桃源般得享受。最重要的是獲取這一切,您都採起的是免費的方式,由於全部的組件都是開源的,這是一款很是值得推薦的軟件工具。
來源:http://www.shangxueba.com/jingyan/88423.html
開始以前
本教程將介紹 Eclipse 的 EPIC 插件提供的調試功能,該插件提供了功能豐富的調試環境 —— 可爲 EPIC Perl 開發環境所用且與此開發環境相集成。本教程假設讀者瞭解 Eclipse 環境,而且有使用 Perl 的經驗。
關於本教程
EPIC 結合了兩種有助於 Perl 應用程序測試流程的系統:RegExp 和調試器。RegExp 是一個測試 Perl 正則表達式的接口。正則表達式是許多 Perl 應用程序的主要組成部分,但保證表達式的正確性是一個很是複雜的問題。使用 EPIC RegExp 視圖,您能夠根據已知數據檢查結果,測試並修改正則表達式。
EPIC Perl 調試器是一種較爲傳統的工具,徹底集成於 Eclipse 環境之中。除測試本地化腳本外,EPIC 調試器還可用於調試 Web 及遠程執行 Perl 腳本,所以是多種環境下的理想工具。
本教程將介紹如何導入和移動大型應用程序、如何簡化應用程序視圖以使代碼更易於理解,從而也更易於調試。另外還會介紹 EPIC 調試環境,它徹底位於 Eclipse 內部,爲標準腳本、CGI 腳本和正則表達式提供了一個完整的調試環境。
前提條件
要開始使用 EPIC,須要知足如下前提條件:
Eclipse V3.1 或 3.0
Java™ 技術 V1.三、1.4 或更高版本
Perl V5.8.6 或更高版本。絕大多數 UNIX®、Linux® 安裝及 Mac OS X 中都包含 Perl。Windows® 上使用 ActivePerl。
Eclipse 的 EPIC 插件
PadWalker Perl 模塊。ActiveState 版本 也可。
傳統 Perl 調試技術
在介紹 EPIC 以前,讓咱們首先來看看 Perl 所使用的傳統調試技術,這些技術隨時可用,而且確實有一些優勢。但它們也有着自身的侷限性。理解其侷限性有助於您理解爲什麼須要一種更好的調試環境。
Perl 中的調試簡介
若是您問一位典型的 Perl 程序員怎樣調試其應用程序,他多半會告訴您他只是使用簡單的輸出語句,在程序執行時轉儲信息。例如,您可向循環中添加一條簡單的語句,來輸出您正在計算或處理的值,如清單 1 所示。
清單 1. 使用輸出語句進行調試
my $sth = $dbh->prepare($query);
$sth->execute();
while(my $row = $sth->fetchrow_hashref())
{
print STDERR Dumper($row);
printf('%s, %s (%s)
',
$row->{album},
$row->{artist},
$row->{genre});
}
$sth->finish();
在這種狀況下,您已輸出了從數據庫 (MySQL) 載入到 STDERR 的行轉儲。STDERR 使用起來很是方便,這是由於在 UNIX 主機上,您可將 STDERR 的輸出重定位到日誌文件,同時使其餘輸出照常定位到標準輸出。
示例中的 Dumper() 函數會實際輸出任何變量的結構,包括嵌入式和嵌套的數組、散列及其餘內容。輸出格式與您手動生成的結構形式相同。此函數(Data::Dumper 模塊的一部分)很是有用,既可做爲以適於人類閱讀的格式輸出變量的方法,也可用於寫入一個能讀回的結構,使用 eval() 可從新建立一個新變量。
過後調試
在應用程序運行時,利用輸出信息的輸出函數這種方式正是過後調試的一個例子。此時您並未實際監控應用程序的執行,也沒有嘗試找出應用程序運行過程當中的問題,而是將信息轉儲出來,並等待執行完成。
在交互式調試難以實現的狀況下,這一特殊的調試方法廣受人們的歡迎。例如,實時調試 CGI 應用程序基本上是不可能實現的,由於應用程序在遠程服務器上執行,且由第二應用程序(Web 服務器)執行。不可能實時監控腳本執行。
所以,過後調試有其用武之地,但也有一些顯而易見的侷限性。舉例來講,在不更改代碼的狀況下,您沒法監控任何變量,而一旦更改了代碼,您就必須再次運行程序,以得到指望的輸出。
一樣,您沒法逐行單步調試程序的執行。必須運行整個應用程序,除非您強行中止它。若是要跟蹤函數調用和序列,就須要添加輸出語句,以顯示做出的是怎樣的決策,並顯示順序與序列,除此以外,別無他法可監控或得到信息。
實時調試
有多種實時調試系統(Perl 自帶的調試器就是其中之一),您可從使用 -d 命令行選項入手(參見清單 2)。該命令行選項會啓動一個交互式會話,經過此會話便可逐行單步調試、跳過代碼段、監控變量和值,甚至在執行過程當中修改值。
清單 2. 使用 Perl 調試器
$ perl -d -e 0
Loading DB routines from perl5db.pl version 1.28
Editor support available.
Enter h or 'h h' for help, or 'man perldebug' for more help.
main::(-e:1): 0
本例中的文本界面很清晰,但依然難以理解發生了什麼事、顯示了什麼信息、當前在代碼特定部分中的哪處執行。
有一些 GUI 可供 Perl 調試器使用,但經過這些界面能實現的功能依然有限。最重要的是,經過這樣的界面調試 Web 應用程序很是困難。
不管在哪一種狀況下,上述調試系統的主要侷限性均在於:它們都是您必須添加到編程工具箱中的其餘工具。但任何一種都未爲您的開發環境提供集成化的解決方案。
這正是 Eclipse/EPIC Perl 調試器發揮巨大優點的場合。它內置於 Eclipse 系統之中,所以,容許您在同一應用程序內同時實現開發、編輯和調試。
在 EPIC 中導入和處理現有項目
上面已經介紹了傳統的 Perl 調試技術,如今是 EPIC 登場的時候了,下面將介紹在項目中遍歷的方法 —— 對於代碼執行和調試來講,這是一項相當重要的技巧。要研究實現此目標的最佳方法,須要以一個大型項目做爲示例。爲使項目進入 Eclipse,您將使用導入系統將文件添加到新項目中。
運行導入
要了解如何調試應用程序,一個好方法就是首先將已開發出的應用程序導入您的系統中。這將爲您奠基良好的基礎,並使您有機會了解如何在大型項目中遍歷 —— 在使用調試器接口時,這是一項必備的技巧。
按如下步驟操做便可導入一組現有文件:
若必要,建立一個新項目(若想將文件添加到您本身的項目中,也可以使用現有項目)。
在 File 菜單中選擇 Import。
從可用導入源清單中選擇 File system,參見圖 1。
圖 1. 選擇導入源
單擊 Next。
在下一面板中單擊 Browse,選擇導入操做的源文件夾。文件夾將顯示在左側的面板中。源文件夾中的其餘文件夾則以樹型結構顯示在此列表中。選中文件夾中的文件則顯示在右側的面板中。
單擊所顯示文件夾旁邊的複選框。也可按照一樣的機制選擇多個獨立文件和文件夾。
您可選擇至此完成,但有時,您可能不想導入此文件夾中的其餘文件。手動選擇文件很是複雜,您可利用過濾器自動選擇文件導入:
若想僅選擇 Perl 文件(一般是以 .pl —— 即腳本、.pm —— 即模塊結尾的那些文件),請單擊 Filter Types 按鈕。
您將看到一個可能文件類型的清單提示(參見圖 2)。全部的 Perl 文件類型旁都帶有駱駝圖標。單擊您但願導入的文件類型旁的複選框。
圖 2. 選擇要導入的文件類型
若是您爲 Perl 文件使用了非標準擴展名,可經過 Other Extensions 文本框添加您的擴展名。
肯定最終的擴展名清單後,單擊 OK。
最好檢查一下已選擇了哪一個文件。從源文件夾中選擇的各文件旁應已有複選框。在圖 3 中可看到過濾後文件的示例。
圖 3. 查看要導入的文件/文件夾
若是確認已選好的導入文件/文件夾無誤,便可單擊 Into Folder 文本框旁的 Browse 按鈕。系統將要求您選擇導入文件的目標項目文件夾。
單擊 Finish。
項目已成功導入,下面將介紹如何在項目中遍歷。
遍歷大型項目
遍歷項目的方法有兩種,具體選擇哪一種取決於您的位置。您可利用 Navigator 視圖瀏覽整個項目。此時可看到一個或多個打開項目的獨立文件夾和其中的文件。圖 4 給出了一個示例。
圖 4. Navigator 視圖
選中要在 Editor 中查看的特定文件後,Outline 視圖會顯示已導入文件中的模塊以及文件內定義的全部子例程。二者結合在一塊兒,使文件佈局和功能更易於理解。要跳過特定子例程,可在 Outline 視圖內雙擊其名稱。圖 5 給出了一個 Outline 視圖窗口的示例。
圖 5. Outline 視圖
EPIC 的 AutoLoader 限制
值得注意的是,某些流行的 Perl 結構和技術在 EPIC/Eclipse 中沒法使用。AutoLoader 系統中就存在着一個這樣的限制,該系統提供了一種靈活、高效的途徑,可將模塊分割成較小的文件,在執行期間自動載入。
AutoLoader 系統的工做方式是,將除存根自動加載器 (stub auto-loader) 之外的全部代碼置入文件的文本部分中。這一文本部分一般用於存儲腳本數據(而非使用外部文件來存儲),所以假設它將會被忽略是安全的。但遺憾的是,這也意味着 Eclipse 會徹底忽略此代碼。
代碼摺疊
可讀性使代碼易於理解,對調試代碼大有裨益。EPIC 插件提供的工具首先使代碼具備良好的格式,從而更具可讀性,而且更容易隱藏再也不須要或再也不但願看到的子例程及組件。
代碼摺疊 使您可以隱藏給定子例程的定義。除了子例程聲明存根依然顯示外,子例程代碼定義的其餘部分均可隱藏。
若是在編輯器窗口中查看 RSS Feeder 腳本,將看到各子例程左側列中有一個短線標記,如圖 6 所示。
圖 6. 摺疊前代碼中的子例程
若單擊 parse_items_to_text() 旁的短線標記,整個子例程定義將隱藏起來。關於摺疊後的子例程定義示例,請參加圖 7。
圖 7. 摺疊後的子例程
摺疊後原短線標記將變爲加號標記(強調代碼已摺疊)。單擊加號標記將當即展開代碼,從新顯示出定義。
運行 Perl 應用程序
如今,您應該對如何利用 EPIC 簡便地遍歷項目有了很好的理解。但在開始調試應用程序以前,應首先了解一下如何運行應用程序。要運行應用程序,須要建立一個新的運行配置。
RSS Feeder 應用程序
RSS Feeder 應用程序的基礎知識已在 「Build Perl applications with Eclipse」 教程中介紹過。爲方便起見,清單 3 中給出了本教程後面將用到的腳本。
清單 3. RSS Feeder 腳本
use strict;
use warnings;
use XML::RSS;
use LWP::UserAgent;
my $ua = LWP::UserAgent->new();
my $feeds = { "MCslp" => 'http://www.mcslp.com/wp-rss2.php' };
foreach my $feed ( sort keys %{$feeds} )
{
my ($rss) = parse_rss_fromurl( $feeds, $ua, $feed );
parse_items_to_text($rss);
}
sub parse_rss_fromurl
{
my $feeds = shift;
my $ua = shift;
my $feed = shift;
my $response = $ua->get( $feeds->{$feed} );
my $rss;
if ( $response->is_success )
{
$rss = XML::RSS->new();
$rss->parse( $response->{_content} );
}
return ($rss);
}
sub parse_items_to_text
{
my ($feed) = @_;
foreach my $i ( @{ $feed->{items} } )
{
next unless defined($i);
my $len = length( $i->{"title"} );
print($i->{"title"},
"\n",
( '=' x $len ),
"\n",
$i->{"description"},
"\n\n",
$i->{"link"},
"\n\n" );
}
}
這段腳本由一個處理散列的基本循環構成,首先下載 RSS 提要源(使用 LWP),而後解析源(使用 XML::RSS)。所獲得的對象將用於輸出 RSS 提要項的簡單文本表示。
爲執行而配置應用程序
在介紹調試的細節以前,您首先應瞭解運行當前在 Eclipse 內開發的應用程序的基礎知識。本節將延用介紹在 Eclipse 中開發 Perl 應用程序的教程中所生成的 RSS Feeder 應用程序。我已利用本教程前面所介紹的技術將此應用程序的文件導入系統。
請按如下步驟配置欲執行的項目中的腳本:
從 Run 菜單中選擇 Run。您將看到一個如圖 8 所示的對話框:
圖 8. 設置默認 Run 配置
選擇 Perl Local 項,並配置在調試或運行一個本地 Perl 腳本(非遠程或 CGI)時所使用的透視圖。運行腳本時,您的透視圖將自動切換爲此處所配置的透視圖。
確保在此對話框左側的配置列表中選中了 Perl Local,且選擇了 New。您將看到用於建立新 Run 配置的對話框,如圖 9 所示。
圖 9. 添加新 Run 配置
配置您想執行的項目和腳本的名稱。請注意,您也能夠向腳本中添加任何命令行選項。切記添加配置名稱,務必注意此配置特定於此項目中的此腳本。
您也能夠經過 Conmon 面板設置特定選項,例如將輸出發送到哪裏、是否將此添加到 Run 菜單的可用腳本中以執行、是否啓用控制檯等(參見圖 10)。
圖 10. Common 配置面板
單擊 Apply,再單擊 Close 保存配置。
激活配置後,便可隨時運行您的腳本。
運行您的應用程序
既然已經得到了活動的 Run 配置,您就能夠執行您的腳本,並測定它是否按照您期待的方式工做。
第一次運行您所配置的腳本時,須要手動選擇配置。但這樣的手動選擇僅需一次,此後可在 Run 菜單中直接將其做爲 「歷史」 項目選擇並再次運行。您還可編輯 Run 配置選項,明確地將該腳本添加到 Run 菜單中。
初次運行您的配置時,請按如下步驟進行操做:
從 Run 菜單中選擇 Run。
從左側的配置列表中選擇配置。
選擇 Run。
您的腳本將被執行,且其輸出被髮送到 Eclipse Console。
若是您未在 Eclipse 中打開 Console 視圖,可在 Window 菜單中選擇 Console 視圖打開它。
圖 11 展現了此 RSS Feeder 腳本的部分輸出示例。
圖 11. RSS Feeder 腳本的控制檯輸出
您未必但願只是單純地運行應用程序,而不經過某種方式監控或處理應用程序,下面咱們將就此進行介紹。
與您的應用程序交互
對於基本的文本腳本或經過標準輸入/輸出實現大多數交互的應用程序來講,Eclipse 的 Console 視圖足以應付。固然,經過此界面能實現的交互是有限的,您可能會但願至少要增長控制檯視圖的大小,使其更便於使用。
若是您建立了一個運行配置的 CGI,執行模型會略有不一樣。緣由在於 EPIC 建立到腳本的臨時 CGI 接口的方式,以及經過內置 Web 客戶機或第三方客戶機 —— 如 Internet Explorer、Safari 或 Firefox —— 提供 CGI 輸出的方式。
在您調試 —— 而非單純地執行 —— 應用程序時,CGI 腳本接口充分的交互性更有意義。調試一般須要較多的交互,所以下面咱們將介紹調試過程當中腳本執行的細節。
調試標準應用程序
既然您已經理解了如何利用 EPIC 遍歷項目並運行應用程序,那麼下面將開始介紹標準應用程序的調試。
須要您完成的工做僅僅是將標準 Run 環境的配置更改成調試配置。Eclipse 隨後會提供一個調試透視圖,該透視圖支持標準調試工具(如斷點),而且可以使您在執行過程當中查看變量。
爲調試而配置應用程序
請按如下步驟配置項目中要調試的腳本:
從 Run 菜單中選擇 Debug。您將看到如圖 12 所示的對話框。
圖 12. 調試配置
選擇 Perl Local 項,並配置在調試本地 Perl 腳本(非遠程或 CGI)時所使用的透視圖。運行腳本時,您的視圖將自動切換爲此處所配置的透視圖。因爲您是爲調試而進行配置,因此請選擇 Eclipse Debug 透視圖。
您能夠選擇建立新配置,也可以使用現有配置。要建立新配置,請在本對話框左側的配置列表中選擇 Perl Local,而後單擊 NewY。隨後將看到用於建立新 Debug 配置的對話框,如圖 13 所示。
圖 13. 添加新 Debug 配置
配置要執行的項目和腳本的名稱,請注意,您也能夠向腳本中添加任何命令行選項。切記添加配置名稱,務必注意此配置特定於此項目中的此腳本。
單擊 Apply,再單擊 Close 保存配置。
激活配置後,便可隨時調試您的腳本。單擊 Debug 可啓動調試過程。
Eclipse 調試界面
Eclipse 的調試透視圖爲 Eclipse 中的絕大多數調試系統共享和使用,包括在調試 C/C++ 和 Java 應用程序時。圖 14 展現了調試透視圖的一個示例。
圖 14. 調試透視圖
調試透視圖由多個默認視圖構成,包括:
Debug 視圖本視圖展現了正在運行的腳本,包括單獨腳本中的多個線程。圖 15 給出了此視圖的一個特寫。此處該視圖中顯示的是正在運行的腳本 (Main Thread) 和 Perl Debugger 線程(用做運行腳本的接口)。請注意圖中還顯示了腳本中執行暫停時所在的行。若是您從視圖中選擇此項,則源代碼中的相應行將顯示出來。Variables 視圖本視圖可用於顯示變量值,其輸出相似與本教程前面介紹傳統調試方法時提到的 Dumper() 函數所產生的輸出。後面咱們將更詳細地介紹如何配置要查看的變量。Breakpoints 視圖本視圖顯示了爲所調試的應用程序配置的斷點。後面咱們將更詳細地介紹配置斷點的相關內容。
其餘視圖您應該已比較熟悉,如編輯器視圖、項目大綱視圖和控制檯視圖等。
開始調試應用程序後,您會但願開始單步執行代碼行,並監控輸出。調試器自動在可執行代碼的第一行處中止(導入全部模塊後)。
單步執行所調試的應用程序
單步執行所調試的應用程序使您可以逐行、逐函數調用地監控腳本的執行。經過單步執行,您能夠經過函數調用、測試語句等跟蹤執行,還可在代碼執行期間監控變量值。
Eclipse 支持 5 種 step 模式,但在大多數狀況下,EPCI 插件僅支持前三種。可利用工具欄上的 Step 按鈕(工具欄面板右側的後 5 個按鈕):
Step Into —— 進入函數、循環或其餘語句。若函數可用,調試器將顯示源代碼,並容許您單步執行源代碼。
Step Over —— 跳過一條語句,轉向代碼中的下一條語句。
Step return —— 若您已進入函數,則執行函數中的所有代碼,包括其返回語句。
您能夠單擊 「Play」 按鈕(正是您的 VCR play 按鈕)從新開始執行,直到預先配置好的斷點或腳本末 —— 以先知足的條件爲準 —— 處中止,利用相似於 VCR 的 Pause 按鈕暫停,使用 Stop 按鈕徹底中止執行。
若是您中止了執行,想在同一腳本上從新啓動調試過程,可右擊過程,並在菜單中選擇 Relaunch。
添加/刪除斷點
有時您但願在腳本執行過程當中暫停或中止執行,斷點正是代碼中執行暫停或中止時所在的行。可想而知,斷點的功能正是在該點中斷執行。
爲配置斷點,請在源代碼中要添加斷點的行旁邊的邊框處右擊。
您將看到一個提示菜單,容許您在代碼此處添加斷點。在設置斷點時,您會發現啓用行號是很是有用的(經過同一提示菜單便可實現)。
添加斷點後,代碼行旁會出現一個斷點圖標,如圖 15 所示。斷點圖標顯示在源代碼第 6 行的旁邊。
圖 15. 帶有斷點的代碼
您還可使用 Breakpoints 視圖訪問已配置斷點的列表(如圖 16 所示),其中列出了項目中全部已配置斷點的類型、文件和行號。
圖 16. Breakpoints 視圖
要刪除斷點,可在源代碼相應行處再次右擊並選擇 Remove Breakpoint,也可從斷點列表中選擇要刪除的斷點,而後右擊它,按一樣方式刪除。您還能夠啓用和禁用斷點,若您在調試同一代碼且想監控相同的位置,但沒必要同時進行監控,那麼這一功能是很方便的。
監控變量
選中正在運行的線程後,當前範圍內的所有變量將以列表形式顯示在 Variables 視圖中。圖 17 給出了 Variables 視圖的示例。
圖 17. 調試器變量
對絕大多數調試器而言,僅在您明確將變量添加到要監控的變量列表後才能顯示變量,EPIC 調試器與此不一樣,它會自動顯示當前範圍內的全部變量。如您所見,這裏也顯示了變量的所有細節信息,您可使用樹型界面來審查腳本中像嵌套數組和散列這樣的複雜結構的值。請注意,本地變量帶有一個包含 「L」 的圖標,其餘全部變量則使用標準變量圖標。
在上一次執行後發生了變化的變量會以紅色突出顯示。這使得在單步執行應用程序時尋找所更改的變量變得垂手可得。
除在您的腳本中所定義的變量外(包括當前塊的全局變量和局部變量),變量視圖還會默認地顯示腳本中間接使用的一些全局變量。例如,它會顯示特殊 STDIN、STDOUT 和 STDERR 變量的值。
您還可選擇顯示內部 Perl 變量(例如 $$、%ENV 等)。單擊 View 菜單,選擇 Show Perl Internal Variables 便可。圖 18 顯示了一個啓用了此功能的 Variable 視圖。
圖 18. 顯示標準內部變量
切記 Variable 視圖僅顯示當前範圍內的變量或全局變量。它不會顯示當前範圍內(函數、循環、塊,甚至是模塊或包)不可用的變量。
調試 Perl CGI 應用程序
至此,您已經瞭解了使用 EPIC 調試 Perl 應用程序的好處,那麼對於 Per CGI 應用程序來講,狀況又如何呢?因爲 CGI 應用程序是由 Web 服務器執行的,一般經過 Web 瀏覽器輸出其信息,所以調試起來很是困難,除非您使用本教程一開始提到的過後調試技術。但 EPIC 爲此類問題提供了一種獨特的解決方案。
配置 CGI 調試會話
要調試 Perl CGI 腳本,您須要具有一個正常工做的可用 Web 服務環境,如 Apache 或 IIS,且可以向 IIS 目錄中寫入信息。EPIC 調試 CGI 應用程序的方式就是做爲 Web 服務器與客戶機之間的代理。這使其可以控制和監控腳本的執行,即使從技術上來講,腳本是經過 Web 服務器存取的。
請按如下步驟配置 CGI 調試會話:
從 Run 菜單中選擇 Debug,打開 Debug 配置窗口。
從可用配置類型列表中選擇 Perl CGI 配置。
單擊 New 建立新配置。
在 Configuration 面板中(如圖 19 所示)選擇要調試的項目。能夠在 Web Server 面板中按擴展名選擇 CGI 腳本。
圖 19. Configuration 面板
在 Web Server 控制面板中(如圖 20 所示)爲已配置的 Web 服務器配置 HTML 和 CGI 目錄。您須要將腳本複製到此目錄中(可以使用 Eclipse 的 Export 函數)。還須要配置在調試時要用到的 「啓動」 文件的名稱。此文件將在首次訪問 Web 服務器時返回,其中應包含到腳本的連接,或使用腳本的表單。
圖 20. Web Server 面板
若您須要設置自定義 CGI 環境變量,可以使用 CGI Environment 面板來設置這些變量及其值。
在 Browser 面板中,選擇您想用於調試腳本的瀏覽器。我發現內置瀏覽器每每是最佳選擇。
單擊 Apply。
單擊 Debug 啓動調試過程。
調試 Perl CGI 腳本
運行 Perl CGI 腳本後,便可執行在調試標準腳本時所執行的所有功能。您一樣能夠單步執行、監控變量、設置斷點以中斷執行。
在圖 21 中可看到 Perl CGI 腳本形式的 RSS Feeder 應用程序的執行示例。
圖 21. 調試 Perl CGI 腳本
瞭解了 Eclipse 做爲腳本和實際 Web 服務器之間的代理工做的方法後,您就能夠控制執行了。甚至可垂手可得地監視和控制腳本中 HTML 的個別輸出。以這種方法調試 CGI 腳本時,超時期一般較長,某些瀏覽器在這種狀況下會出現問題。所以我建議使用更能容納 CGI 調試影響的內置 Web 瀏覽器。
調試正則表達式
調試正則表達式的艱難程度盡人皆知,調試工做中一般還要構建正則表達式,並根據不一樣的腳本測試其執行。經過使用交互式的正則表達式測試系統,您能夠加快整個過程。EPIC 插件正是這樣的一個系統。
若是您向 Eclipse 透視圖中添加正則表達式視圖(開發或調試時),就能夠根據已知值輸入和測試單獨的正則表達式,而無需爲此建立腳本。圖 22 顯示了工做中的 RegExp 視圖。
圖 22. 使用正則表達式視圖
使用方法時,在頂端的文本框中輸入正則表達式,在 Match 文本框中輸入做爲測試依據的文本。您還可添加選項,如忽略大小寫、匹配多行字符串等,只需選中恰當的複選框便可。
若正則表達式正確,則您會看到一個綠色的指示標記。不正確的表達式則爲紅色,未經覈對的表達式爲黑色。
視圖右側的按鈕用於執行如下操做(由左至右):
Stop execution中止正則表達式的執行。Step backward在有多個元素(例如,多個組)的正則表達式中,此按鈕的做用是沿匹配元素向後移動。相應地突出顯示匹配文本中匹配的元素。例如,在圖 22 所示的正則表達式和匹配文本中,最早匹配的是數字,隨後是名稱。Step forwardStep forward 將向前遍歷正則表達式中的匹配元素。Run在整個文本塊上運行正則表達式。成功運行的塊將以不一樣的顏色突出顯示,如圖 23 所示。
圖 23. 運行整個正則表達式
在調試標準腳本時,正則表達式調試器/測試器視圖也變爲可用。您甚至能夠設置一個特殊的正則表達式斷點。
如今您應該已經學會了如何利用 EPIC 調試您的 Perl CGI 應用程序。
結束語
在本教程中,咱們介紹了調試 Perl 腳本時可使用的方法。從在傳統 Perl 開發環境中所使用的方法開始。整體而言,其中包括兩種方式,使用 print() 函數並監控輸出或使用 Perl 所提供的調試器。這兩種方法都有一些侷限性。
利用 EPIC —— Eclipse 的 Perl 開發環境插件,您能夠調試 Perl 腳本和 Perl CGI 應用程序。您但願一個調試器具有的一切功能均可以經過 EPIC 得到,包括單步處理、變量監控,以及設置斷點並監控腳本的執行。您還能夠經過 Eclipse/EPIC 調試 CGI 腳本,利用在 Eclipse 中運行腳本同時直接將腳本輸出定位到 Web 瀏覽器(包括 Eclipse 所提供的內置 Web 瀏覽器)這樣的方式便可。最後,咱們還介紹了在腳本內調試正則表達式的方法 —— 特別地,可在開發過程當中實現這樣的調試。
經過本教程介紹的 EPIC 所提供的功能,以及 「Build Perl applications with Eclipse」 教程中所介紹的功能,您能夠了解,該插件提供了一個完整的環境,可以使您在 Eclipse 內開發和測試 Perl 應用程序。
來源:http://www.educity.cn/develop/1396821.html
1 Installation
EPIC(Eclipse Perl Integration)是一個基於Eclipse平臺的開源Perl集成開發環境。其支持的功能有語法高亮、語法檢查、代碼提示、Perldoc支持、模版、Perl調試器和正則表達式插件等。
在安裝EPIC以前須要安裝Eclipse3.1以上版本,此外還須要安裝Perl解釋器(Unix和Linux平臺一般會缺省安裝Perl,Windows平臺上能夠安裝ActivePerl,下載地址)。
能夠經過Eclipse Update Manager來安裝EPIC。選擇菜單Help->Software and Updates->Find and Install,在彈出的Install/Update對話框中選擇Search for new features to install而後單擊下一步,在彈出的Install對話框中單擊New Remote Site,在彈出的對話框中輸入Name(例如EPIC)和URL()而後單擊肯定。接下來在Install對話框中選中剛纔新建的Site,單擊完成。按照嚮導的指示完成後續的過程,忽略途中提示的未經簽名的警告。重啓Eclipse後,EPIC應該已經安裝完畢了。
若是要暫時禁用或者卸載EPIC,選擇菜單Help->Software and Updates->Manage Configuration,展開彈出對話框左側的樹控件,選中當前版本的EPIC並單擊右鍵,在彈出菜單中選擇禁用或者卸載。
2 Setting Up Preferences
選擇菜單Window->Preferences,在彈出的Preferences對話框左側的樹控件中選擇Perl EPIC以打開Perl EPIC General Preferences頁。這個頁中包含了Perl解釋器的路徑、解釋器的類型以及其餘選項等。
關於解釋器的類型,除了standard以外,還能夠選擇Cygwin。若是選擇Cygwin,那麼@INC數組的內容會有所變化。至於@INC數組,當使用use ModuleName來裝載模塊時,Perl會在@INC數組中列出的每個目錄中查找模塊。由於use是在編譯時裝載模塊,因此任何對@INC的修改都須要在編譯時發生。能夠經過BEGIN塊在編譯時向@INC中添加值,例如BEGIN { push @INC, ‘/path’ }。@INC一般包含(假設Perl安裝在/perl):/perl/lib /perl/site/lib .。核心模塊是安裝在」perl/lib」目錄中,非核心模塊安裝在」perl/site/lib」目錄中,」.」這個目錄表示當前的工做目錄。在Eclipse中選中Perl工程,選擇Project->Properties,在彈出的對話框中選擇Perl Include Path,而後就能夠向@INC中添加項目。若是沒有指定絕對路徑,那麼這個路徑是相對於工程目錄的。可使用標準的Eclipse變量,例如${project_loc}。
關於調試器相關的設置有如下兩個:
Enable debugger console。這個選擇只是在你但願調試EPIC自身的時候有用,在其它狀況下不要使用。在調試的時候,一個特殊的控制檯(單擊Debug View中的perl –d項目以顯示此控制檯)會顯示EPIC和後臺的Perl調試器之間的通訊內容。
Suspend debugger at first statement。此項目缺省是選中的,選中它會致使調試器在腳本的開始處中止,而不論該處是否有斷點。
若是不安裝PadWalker模塊也是可使用調試器的,可是在這種狀況下local variables 不會被顯示。能夠從CPAN上下載PadWalker的最近版本並進行安裝,例如使用Perl安裝中附帶的安裝管理器(ActiveState附帶的是Perl Package Manager)進行安裝。
EPIC在進行語法檢查時若是發現語法錯誤,那麼會顯示錯誤或警告圖標。若是右鍵單擊該圖標,並在彈出菜單中選擇Explain Errors/Warnings,那麼在Explain Errors/Warnings view中會顯示具體的錯誤或警告信息。
若是安裝了ActivePerl,那麼會同時安裝Perldoc。經過Perldoc能夠查找相關的幫助文檔,例如在命令行上輸入 Perldoc -f use能夠查看use的用法。若是在程序中選擇部分文本並單擊右鍵,並在彈出菜單中選擇Perldoc(若是沒有任何選中,那麼會彈出一個輸入對話框),那麼在Perldoc View中會顯示查找到的幫助文檔。
在Content Assist Preference 頁中能夠指定代碼提示的觸發字符,一般不須要對其進行修改,只要取消選中Inspect Variables便可關閉此功能。須要注意的是:目前Content Assist支持使用箭頭操做符的方法調用,例如:
$smtp = Net::SMTP->new();
$smtp->[content assist]
不支持間接對象的方法調用,例如:
$smtp = new Net::SMTP;
$smtp->[no content assist]
在Templates Preference 頁中能夠建立、編輯或者刪除模版。例如在New Template對話框的Name文本框中輸入for,在Pattern中輸入for(${var} = 0; ${var} < ${max}; ${var}++) {}並單擊肯定就新建了一個新的模版。在編寫程序時,輸入for並按下Alt+/以後(能夠經過Window->Preferences->General->Keys配置),以前定義的模版會被插入到代碼中。按下TAB鍵能夠切換模版中的用戶自定義變量(例如${var}和${max})。
在Task Tags Preference 頁中能夠指定一系列用來在註釋中做爲任務標記的關鍵字,缺省有TODO 和TASK;EPIC 使用 PerlTidy 來格式化源碼,Source Formatter Preference頁用來指定PerlTidy的命令行參數。
3 Perl Project
推薦以核心Perl發佈的慣例形式來組織你的工程:
將你本身的模塊保存在工程的某個子目錄中,例如在工程根目錄下創建一個lib目錄,用來保存全部*.pm文件。並將這個子目錄添加到@INC中。
將包名映射成子目錄名,例如將Foo::Bar包中的代碼保存在lib/Foo/Bar.pm文件中,並保證lib/Foo/Bar.pm中只包含Foo::Bar包中的代碼。
你本身的Perl腳本保存能夠保存在工程中的任何目錄裏,例如工程根目錄下的bin或者cgi-bin目錄。
在裝載一個包時,不要使用require,而是使用use,例如use Foo::Bar。
4 RegExp Plug-in
RegExp插件是個調試正則表達式的小工具,其打開方式以下:選擇菜單Window->Show View->Other,而後在彈出的Show View對話框中選擇EPIC節點下的RegExp。
若是在RegExp文本框中輸入正則表達式,在Match text文本框中輸入進行匹配的文本,並單擊右側的Validate RegExp按鈕。若是表達式和文本匹配,那麼會顯示綠色圖標;不然顯示紅色圖標。若是表達式包含小括號,那麼在Match text中與小括號部分匹配的文本會高亮顯示。
perl-express: http://perl-express.com/
不知道怎麼樣?感受用的人很少呢。
http://www.activestate.com/
也支持調試CGI,參見《CGI編程-使用Perl》 P421-422 (不過沒怎麼講怎麼調試)
可能如今沒了,被Komodo代替了?
什麼是ActivePerl?
ActivePerl是Perl語言的Windows版本,Perl是一種很自由並且功能很強大的編程語言,主要被用做 Web 編程、數據庫處理、XML 處理以及系統管理,並且Perl 至關快捷實用。
什麼是Dzsoft perl ?
Dzsoft perl editor是Perl/CGI 腳本編寫、編輯和調試工具。它有着溫馨而直觀的用戶界面,適合於初學者和高級程序員。它簡單得有些奇怪,可是它真的是一款強大的工具。它有調試功能,一個溫馨的帶語法加亮的編輯器,一個語法檢查功能能夠找到你腳本里的錯誤,還有許多其餘功能用來方便Perl的開發。
dzsoft能夠和active perl關聯,就能夠在編輯器裏直接調試程序了。
Sublime運行Perl程序(不支持debug)http://blog.sina.com.cn/s/blog_565e192a0101q1ve.html
sublime text 是一個功能強大的文本編輯器而已, 而不是真正意義上的IDE。 像打斷點調試這種st是作不到的…… 須要用專業的IDE, 好比c#的virtual studio, php的 zend studio, ruby的rubymine 等等。
可是裝了插件就能支持debug了。 Sublime Text比較適合用於進行Ruby/Python/Lua的腳本撰寫,惋惜的是它自帶的Build系統裏並不包含Lua。
使用Sublime Text搭建python調試環境 http://blog.csdn.net/wenxuansoft/article/details/38559731
神器sublime2配置xdebug調試PHP http://lobert.iteye.com/blog/2068638
Sublime Text 2配置Lua開發環境 build lua(不支持debug) http://blog.csdn.net/qingye2008/article/details/22267143
Sublime運行Perl程序(不支持debug) http://blog.sina.com.cn/s/blog_565e192a0101q1ve.html
以前的主力編輯器是komodo ,後來轉sublime了,再後來轉atom(支持github好點,但太新了)
sublime text 是全部編輯器裏邊支持emmet比較好的的惟一一款(可是不內置emmet)。