首页»编程语言»为Java程序员准备的10分钟Perl教程

为Java程序员准备的10分钟Perl教程

来源:oschina 发布时间:2013-11-10 阅读次数:

  这10分钟教程并不是Java和Perl的比较。目标是探索作为Java开发人员如何快速学习Perl。以下是一些从我的角度来看的关键笔记。

  1.从基础开始

  不像java,Perl不需要“main”方法作为入口点。要运行一个简单的Perl程序如下:

# comment starts with "#"
# the name is hello.pl
print "Hello Perl!";
perl hello.pl

  2. 日期类型

  在Perl中的日期类型是非常简单,它有3种类型:标量,数组和Hash。

  标是一个单值,它基本上可以是任何其他比数组或哈希。

  数组是一个数组,可以包含不同类型的元素,如整数,字符串。

  哈?;旧鲜窍馢ava的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";
}

  输出结果:

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";
}

  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
	chomp($aline);
	print $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;

  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 );

  哈系类:

sub printHash($) {
	my %hash = %{ shift() };
	for my $key ( sort keys %hash ) {
		my $value = $hash{$key};
		print "$key => $value\n";
	}
}
 
printHash(\%twoLettersCount);

  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.programcreek.com/2012/09/10-minutes-perl-tutorial-for-java-developer/

QQ群:WEB开发者官方群(515171538),验证消息:10000
微信群:加小编微信 849023636 邀请您加入,验证消息:10000
提示:更多精彩内容关注微信公众号:全栈开发者中心(fsder-com)
网友评论(共1条评论) 正在载入评论......
理智评论文明上网,拒绝恶意谩骂 发表评论 / 共1条评论
登录会员中心
大发国际网址 建瓯市| 武邑县| 应用必备| 若尔盖县| 迭部县| 房产| 凌源市| 安溪县| 山东省| 衡南县| 泉州市| 石狮市| 吴江市| 苏尼特右旗| 丰原市| 东台市| 利川市| 仙居县| 临泉县| 称多县| 彭水| 蕉岭县| 高唐县| 德安县| 上饶县| 宜兴市| 丰台区| 盐城市| 张家界市| 湘潭县| 德庆县| 竹溪县| 蒲城县| 邹平县| 尖扎县| 乌兰浩特市| 黔江区| 饶河县| 白银市| 五原县| 峨眉山市| 鲁甸县| 收藏| 义马市| 濉溪县| 固安县| 高安市| 方正县| 邵东县| 辽宁省| 四子王旗| 建平县| 罗平县| 沧源| 龙州县| 冷水江市| 四会市| 郧西县| 延庆县| 安平县| 射洪县| 略阳县| 南投县| 博湖县| 鲜城| 余江县| 建平县| 金平| 沙坪坝区| 卢湾区| 南宁市| 岱山县| 台州市| 黄冈市| 布尔津县| 永州市| 云和县| 盱眙县| 宜兰市| 德钦县| 驻马店市| 象州县| 仁怀市| 额敏县| 孟州市| 永丰县| 海安县| 河南省| 渝北区| 合川市| 巴南区| 剑川县| 郯城县| 长白| 阳朔县| 开平市| 荆州市| 鲁山县| 腾冲县| 泸溪县| 绵竹市| 汤原县| 辉南县| 涞水县| 尤溪县| 阜南县| 应用必备| 漳州市| 隆化县| 疏勒县| 湖州市| 宁波市| 罗江县| 吉安市| 白沙| 信宜市| 文山县| 藁城市| 塔河县| 凤台县| 扶沟县| 原阳县| 临邑县| 林甸县| 阜新市| 岚皋县| 肥西县| 罗田县| 海盐县| 隆林| 孟津县| 临猗县| 青州市| 永丰县| 额尔古纳市| 福鼎市| 达孜县|