Time of Update: 2018-12-03
一、子程式的引用:Perl中不僅可以對標量變數、陣列變數、雜湊變數建立引用,而且也可以對子程式建立引用;子程式的引用類似於C/C++中的函數指標;構造方法如下:$Pointer_to_Sub = sub { #函數體 };這樣就建立了一個對匿名子程式的引用;通過子程式引用調用子程式的文法如下&$Pointer_to_Sub(參數列表);1、子程式模板:有時候可以通過子程式返回不同的子程式引用,可以建立一系列不同的子程式,這樣就可以把操作模板化,這類似於C/C++中的回呼函數,即
Time of Update: 2018-12-03
範圍(Scope)就是變數的有效範圍、可見範圍,變數只有在範圍中才會有效;Perl中,資料的範圍分為全域範圍、詞法範圍和動態範圍;Pe rl5中,可以使用關鍵字my和local來聲明變數以及限定變數的範圍;1、詞法域:Lexical使用my關鍵字聲明的變數稱為詞法變數,詞法變數的範圍就是詞法域;詞法變數是只限於所在範圍的局部變數;產生的詞法變數不在包的符號表內,只能在自身所在的塊中存在和訪問;使用my關鍵字聲明詞法變數的文法為:my (@Array);或my
Time of Update: 2018-12-03
一、開啟檔案:$OpenFileFlag = open(FILEHANDLE,"模式標識符 FileName");如果開啟成功,則返回真值(非空值);如果開啟失敗,則返回假值(空值);檔案的預設訪問模式是唯讀;1、使用open函數進行檔案重新導向:$OpenFlag = open(HFCAT,"cat file* |");則open函數先把cat命令的輸出構造成一個檔案,然後與檔案控制代碼變數HFCAT關聯起來;$OpenFlag1 = open(FH1,">
Time of Update: 2018-12-03
一、Perl中的命令列參數:Perl提供了一個特殊的內建數組@ARGV來存放使用者從命令列輸入的參數;功能跟C/C++的命令列參數一樣,但是實現上不太一樣;Perl中定義的命令列參數不包含perl命令和perl命令後面的perl程式檔案名稱,即:不包含“perl 程式檔案名稱”,也就是說,數組@ARGV中存放的全都是使用者在命令列上輸入的參數,不包含“perl 程式檔案名稱”;從“ perl
Time of Update: 2018-12-03
一、檔案位置重定位函數:1、rename()函數:檔案重新命名$Ret = rename(OldName,NewName);該函數用於把舊檔案名稱OldName重新命名為一個新的名字NewName,或者是把檔案OldName轉移到指定目錄NewName下面;兩個參數都可以為字串或者運算式;如果OldName與NewName同為檔案名稱或同為目錄名,而且OldName與NewName的目錄名完全相同,則該函數完成的式重新命名工作;如果OldName與NewName的檔案名稱相同,但是路徑不同,
Time of Update: 2018-12-03
一、參數中的數組和雜湊變數:在定義參數列表的時候,有兩種方法可以定義數組或雜湊變數為輸入參數:1、在數組或雜湊變數形參類型名前面加上反斜線“/”;2、把數組或雜湊變數形參類型名放在參數列表中最後面的位置上;作為參數傳遞的數組或雜湊變數都將會被複製到參數列表的標量變數列表中,產生個數不確定的參數列表;實際上標量變數和加反斜線“
Time of Update: 2018-12-03
轉載自:http://club.topsage.com/thread-464914-1-3.html關於學習PerlPerl是一門很有用的語言,可以用它來做很多事。然而,它也僅是一門語言,掌握了Perl,你只是掌握了Computer領域的一小塊知識。在學習Perl前,請明確你的學習目的,並採用正確的學習方法和資源。(一)學習目的你學Perl的目的是什嗎?要實現你的目的,光有Perl夠嗎?讓偶幫你分析看看。1. 我想當一名System
Time of Update: 2018-12-03
第六章 模式比對by flamephoenix一、簡介二、匹配操作符三、模式中的特殊字元 1、字元+ 2、字元 []和[^] 3、字元
Time of Update: 2018-12-03
Perl是Practical Extraction and Report Language的縮寫,它是由Larry Wall設計的,並由他不斷更新和維護. Perl具有進階語言(如C)的強大能力和靈活性,並支援以模組對代碼進行封裝。著名的CPAN上就有非常多好用的Module,可以極大的減輕開發量。可以通過Perl的CPAN模組直接自動從上下載安裝模組. 進入CPAN shell#perl -MCPAN -e shell 下載安裝Net::DNS::Codes模組cpan>
Time of Update: 2018-12-03
用到memcached,記下 memcached中儲存的資料都儲存在memcached內建的記憶體儲存空間中。由於資料僅存在於記憶體中,因此重啟memcached、重啟作業系統會導致全部資料消失。另外,內容容量達到指定值之後,就基於LRU(Least Recently
Time of Update: 2018-12-03
為了選擇一個合適的指令碼語言學習,今天查了不少有關Perl,Python,Ruby,Javascript的東西,可是發現各大陣營的人都在吹捧自己喜歡的語言,不過最沒有爭議的應該是Javascript現階段還不適合用來做獨立開發,它的天下還是在web應用上。我主要是想做資料採礦演算法的研究,應該會處理大量的文本。提到文本處理,相信大部分人都會說應該用Perl。的確,Perl的文本處理很強大,但是它的文法給人的感覺太亂了,我之前把Perl的基本文法學完了,也用它做了一些簡單的文本處理工作,但是到現在
Time of Update: 2018-12-03
grep返回一個數字中合格所有元素;map對數字中所有元素實施轉化並返回結果。兩者都遍曆了數組,但一個用來搜尋,一個用來轉化。兩者都支援運算式或者代碼塊。#!/usr/bin/perl -wuse strict;#get positive numbermy @number = (1,2,3, -1,-5);my @positive_number = grep $_ > 0, @number;print "\@number: (@number)\n";print
Time of Update: 2018-12-03
前幾天發一下一個指令碼運行非常慢,使用time只能知道總的時間,卻無法確認原因,發現Devel::NYTProf是個很不錯的工具。如果你有root許可權,則:perl -MCPAN -e shell>installJSON::Any(不安這個東東,在nyt產生html的時候會報warning,不是必須的)>installDevel::NYTProf如果你沒有root許可權,那麼:在home目錄下建立一個檔案夾,比如
Time of Update: 2018-12-03
什麼是閉包,“This is a notion out of the Lisp world that says if you define an anonymous function in a particular lexical context, it pretends to run in that context even when it's called outside of the context.”【2】。在物件導向的語言裡面,“A closure is a callable
Time of Update: 2018-12-03
python perl指令碼經過cvs提交後無法直接執行python perl指令碼經過cvs提交後無法直接執行原因是windows下換行和linux下換行時不一樣的。而Eclipse在提交的時候,設定的又是ASCII格式。解決的方法是:1、設定Eclipse工程屬性,換行類型為Unix2、設定Eclipse的cvs屬性:把指令碼的類型設定為二進位,而不是ASCII。如果已經是無法執行了,可以通過下面的命令來變更檔的分行符號:sed -i 's/\r$//' *.py或者用vim:set ff=
Time of Update: 2018-12-03
#!/usr/bin/perl -w use strict;use LWP;use HTTP::Request::Common qw(POST GET); use HTTP::Cookies;use LWP::UserAgent; use LWP::Simple; use URI::URL;my $ua = LWP::UserAgent-> new; $ua-> agent( "Mozilla 1.503 Windows XP
Time of Update: 2018-12-03
Notice a great post on reddit, the author listed some useful modules in it. I am excited for that Perl community always appears to be full of vitality and innovation that surprise us.Below content is referring to
Time of Update: 2018-12-03
#!/usr/bin/perl -w# Gist: https://gist.github.com/2928006use LWP::Simple;my $url=$ARGV[0];my $filename =$ARGV[1]; my $content = get($url) or die "Couldn't get $url";#$content =~ s#^.*?(<div.*?</div>).*$##m;if ($content =~ m#.*(<div
Time of Update: 2018-12-03
In item 116 of the book "Effective Perl", author demonstrates how to use unpack to process fix-width columnar data. I tried to write a toy code for practice, and found two things need to note.First thing, MUST use single quote ' before and
Time of Update: 2018-12-03
Submitted a question on StackOverflow just now. I intended to extract content from a web page which contains many unicode characters represented in the form of "%xx". As I used Perl module LWP to get web page, naturally handled these unicode