时间:2021-05-23
1.从基础开始
不像java,Perl不需要“main”方法作为入口点。要运行一个简单的Perl程序如下:
复制代码 代码如下:
# comment starts with "#"
# the name is hello.pl
print "Hello Perl!";
只需执行:
perl hello.pl
2. 日期类型
在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";
}
输出结果:
复制代码 代码如下:
e
c
a
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<SPAN>(</SPAN>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:///2012/09/10-minutes-perl-tutorial-for-java-developer/
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
“程序员小哥哥,可以麻烦您个事吗(满怀期待的眼神)?”3分钟没有回复的话,那么程序员小哥哥一定是在编程;1小时之后,还没有回复,那么程序
作为一个程序员,最烦的就是正在苦思冥想一个功能怎么实现,灵光乍现之时,突然被人打断。打断5分钟,损失1小时。程序员要想提高自己的工作效率,就要学会管理自己的时间
由于学校要求我们每天都要在官网打卡签到疫情信息,多多少少得花个1分钟操作,程序员的尊严告诉我们坚决不能手动打卡。正巧最近学了selenium,于是画了个5分钟写
老板发消息说明天带条鱼来观察结果……1、Java程序员版2、PHP程序员版3、C程序员版4、C++程序员版5、Python程序员版6、.NET程序员版△7、Js
好程序员Java教程分享MyBatisPlus介绍:1.MyBatisPlus介绍MyBatisPlus是国内人员开发的MyBatis增强工具,在MyBatis