脚本之家,脚本语言编程技术及教程分享平台!
分类导航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服务器之家 - 脚本之家 - perl - 为Java程序员准备的10分钟Perl教程

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

2020-06-17 11:19Perl教程网 perl

这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。

标是一个单值,它基本上可以是任何其他比数组或哈希。
数组是一个数组,可以包含不同类型的元素,如整数,字符串。

哈希基本上是像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://www.programcreek.com/2012/09/10-minutes-perl-tutorial-for-java-developer/

延伸 · 阅读

精彩推荐
  • perlperl pop push shift unshift实例介绍

    perl pop push shift unshift实例介绍

    perl的pop跟push操作数组的最右边,shift跟unshift操作数组的最左边 ...

    脚本之家4612020-06-10
  • perlPerl使用nginx FastCGI环境做WEB开发实例

    Perl使用nginx FastCGI环境做WEB开发实例

    这篇文章主要介绍了Perl使用nginx FastCGI环境做WEB开发实例,实现了路由系统和模板系统,需要的朋友可以参考下...

    Perl教程网2412020-06-18
  • perlperl常见问题集合之二

    perl常见问题集合之二

    哪些平台上有 Perl?要到哪里去找? Perl的标准发行版(由 perl 发展小组负责维护)仅以原始码形式发行。您可在 http: //www.perl.com/CPAN/src/latest.tar.gz处取得。这个档...

    脚本之家2102020-05-29
  • perlperl命令行参数内建数组@ARGV浅析

    perl命令行参数内建数组@ARGV浅析

    这篇文章主要介绍了perl命令行参数内建数组@ARGV浅析,本文重点在于讲解@ARGV的用法,并通过实例来说明,需要的朋友可以参考下 ...

    perl教程网6162020-06-18
  • perlPerl从文件中读取字符串的两种实现方法

    Perl从文件中读取字符串的两种实现方法

    有时候我们需要从文件中读取字符串,这里简单介绍下, 需要的朋友可以参考下 ...

    脚本之家6252020-06-08
  • perlPerl的经典用法分享

    Perl的经典用法分享

    Perl的经典用法分享,学习perl的朋友可以参考下 ...

    脚本之家6562020-06-06
  • perlperl use vars pragma使用技巧

    perl use vars pragma使用技巧

    perl 中的vars是perl中的一个pragma(预编译指示符),专门用来预定义全局变量,这些预定义后的全局变量在qw()列表中,在整个引用perl文件中皆可使用,即便使...

    perl教程网6812020-06-16
  • perlPerl List::Util模块使用实例

    Perl List::Util模块使用实例

    这篇文章主要介绍了Perl List::Util模块使用实例,本文给出扫描符合条件的某个列表并取出第一个符合条件的、求1到1000之间的和 、求一组数字的最大值与最小...

    脚本之家4712020-06-22