為 Java 程序員準備的 10 分鐘 Perl 教程
這10分鐘教程并不是Java和Perl的比較。目標是探索作為Java開發人員如何快速學習Perl。以下是一些從我的角度來看的關鍵筆記。
1.從基礎開始
不像java,Perl不需要“main”方法作為入口點。要運行一個簡單的Perl程序如下:
# comment starts with "#"the name is hello.pl
print "Hello Perl!";</pre>
perl hello.pl2. 日期類型
在Perl中的日期類型是非常簡單,它有3種類型:標量,數組和Hash。
標是一個單值,它基本上可以是任何其他比數組或哈希。
數組是一個數組,可以包含不同類型的元素,如整數,字符串。
哈希基本上是像Java的HashMap中。
將下面的代碼結合所有的使用情況。
#claim a hash and assign some values my %aHash; $aHash{'a'}=0; $aHash{'b'}=1; $aHash{'c'}=2; $aHash{'d'}=3; $aHash{'e'}=4;put all keys to an array
my @anArray = keys (%aHash);
loop array and output each scalar
foreach my $aScalar (@anArray){ print $aScalar."\n"; }</pre>輸出結果:
e c a b d如果你想對數組進行排序,你可以簡單地使用類似下面的排序功能:foreach my $aScalar (sort @anArray){ print $aScalar."\n"; }3. 條件、循環表達式
Perl為條件和循環語句準備了if, while, for, foreach等關鍵字,這與Java非常類似(switch除外)。
詳情請見下面的代碼:
#if my $condition = 0; if( $condition == 0){ print "=0\n"; }elsif($condition == 1){ print "=1\n"; }else{ print "others\n"; }while while($condition < 5){ print $condition;
$condition++;
} for(my $i=0; $i< 5; $i++){ print $i; }
foreach my @anArray = ("a", 1, 'c'); foreach my $aScalar (sort @anArray){ print $aScalar."\n";
}</pre>
4.文件的讀寫
下面這個例子向我們展示了如何讀寫文件。這里請注意">"和">>"之間的區別,">>"在文件末尾追加內容,">"創建一個新的文件儲存信息。
#read from a file my $file = "input.txt"; open(my $fh, "<", $file) or die "cannot open < $file!"; while ( my $aline = <$fh> ) {#chomp so no new line character <span>chomp</span><span>(</span>$aline); <span>print</span> $aline;
} close $fh;
write to a file my $output = "output.txt"; open (my $fhOutput, ">", $output) or die("Error: Cannot open $output file!"); print $fhOutput "something"; close $fhOutput;</pre>
5.正則表達式
Perl中有兩種使用正則表達式的方法:m和s。
下面的代碼在$str上應用了正則表達式。
$str =~ m/program(creek|river)/如果$str的內容是“programcreek”,表達式將會返回true。這也可以被用于條件判斷或循環。6.傳值/引用的語法
在Perl中沒有必要定義方法/函數,但如果你這么做了,那將大大提高代碼的模塊化和可充用性。但我們需要對參數的傳遞非常小心。
你可以直接傳遞一個標量,但如果傳遞的是數組或哈希類就需要特別的當心。
數組:
my @testArray = (1, 3, 2);In sub sub processArrayByReference($) { my $arrayref = shift; my @array = @$arrayref;
#...
}
In sub processarray: sub processArrayByValue($){ my @array = @_;
#...
} processArrayByValue(@testArray); processArrayByReference( \@testArray );</pre>哈系類:
sub printHash($) { my %hash = %{ shift() }; for my $key ( sort keys %hash ) { my $value = $hash{$key}; print "$key => $value\n"; } }printHash(\%twoLettersCount);</pre>
7.一些實例
1).遍歷字符串中的每個字符。
my @lineCharArray = split('',$aline); foreach my $character (@lineCharArray){ print $character."\n"; }2).創建一個包含26個字母的數組。你可以簡單地實現這個功能并且無需循環26次。
my @charArray = ('a'..'z' ); my @twoCharArray = ('aa'..'zz');以上是第一個版本的“10分鐘”,我還將根據評論持續更新本文。本文地址:http://www.oschina.net/translate/10-minutes-perl-tutorial-for-java-developer
原文地址:http://www.programcreek.com/2012/09/10-minutes-perl-tutorial-for-java-developer/
</div>本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!