perl语言编程,perl语言编程第四版pdf下载
perl语言的优点是什么?
相比C、Pascal这样的“高级”语言而言,Perl语言的优点是直接提供泛型变量、动态数组、Hash表等更加便捷的编程元素。Perl具有动态语言的强大灵活的特性,并且还从C/C++、Basic、Pascal等语言中分别借鉴了语法规则,从而提供了许多冗余语法。使得程序员可以忽略计算机内部数据存储、类型、处理方法、运算规则、甚至内存越界等等的细节,而将思考中心放在所需要的程序逻辑上。就这一点而言,很多Perl程序员认为当前只有Perl、Python等泛型语言才能称为“高级”语言,而C、Pascal甚至C++这些只能称为“中高级”语言而已。可以说,在统一变量类型和掩盖运算细节方面,Perl做得比Python更为出色。
由于从其他语言大量借鉴了语法,使得从其他编程语言转到Perl语言的程序员可以迅速上手写程序并完成任务,这使得Perl语言是一门容易用的语言。
如何用perl编程
1.最简单的方法:
public?static?String?reverse1(String?str)
{
???return?new?StringBuffer(str).reverse().toString();
}
2.最常用的方法:
public?static?String?reverse3(String?s)
?{?
???char[]?array?=?s.toCharArray();?
??String?reverse?=?"";??//注意这是空,不是null
???for?(int?i?=?array.length?-?1;?i?=?0;?i--)?
???reverse?+=?array[i];?
???return?reverse;?
??}?
3.常用方法的变形:
?public?static?String?reverse2(String?s)
{?
??int?length?=?s.length();?
???String?reverse?=?"";??//注意这是空,不是null
???for?(int?i?=?0;?i??length;?i++)?
????reverse?=?s.charAt(i)?+?reverse;//在前面连接,??而非常见的后面
???return?reverse;?
??}?
4.C语言中常用的方法:
?public?static?String?reverse5(String?orig)
{?
??char[]?s?=?orig.toCharArray();?
??int?n?=?s.length?-?1;?
??int?halfLength?=?n?/?2;?
??for?(int?i?=?0;?i?=?halfLength;?i++)?{?
????char?temp?=?s[i];?
???s[i]?=?s[n?-?i];?
???s[n?-?i]?=?temp;?
???}?
???return?new?String(s);??//知道??char数组和String相互转化
??}
perl语言编程?
第2题
chomp($str=STDIN);
my @array=split/[ ,]/,$str;
my $mx = $array[0];
for my $e(@array) {$mx = $e if ($e $mx);}
print "最大值为$mx";
第3题
chomp($str=STDIN);
my @array=split/[ ,]/,$str;
my @sorted_num=sort{$a=$b}@array;
my $string=join(",",@sorted_num);
print "排序后的数列为:$string";
第4题
chomp($str=STDIN);
my @array=split//,$str;
my %ha;
my @uniq=grep{++$ha{$_}2}@array;
my $size=@array;
my $n;my $foundno;my $regex;my $freq;
print "氨基酸\t频数\t频率\n";
for($n=0;$n@uniq;$n++){
$regex=@uniq[$n];
$foundno=0;
$foundno++ while($str=~m/$regex/g);
$freq=$foundno*100/$size;
print "$regex\t$foundno\t$freq%\n";
}
perl语言和r语言的异同点
都是编程语言,产生原因不同。
1、它们相同点是perl语言和r语言都是编程语言。
2、R和Perl产生的原因不同:看看R的生成的背景就可以想到,在统计里面有很多公共的方法需要调用。
2020年,5 种 将死的编程语言
曾几何时,几乎每个人都在使用Perl语言编程。但是那些经常使用的人慢慢地发现,关于这个Perl语言似乎总是有点不对劲。至少我知道有这么个叫做“piecemeal”的编程语言,它的创造者似乎就只是将这个功能堆在另一个功能上面而已,并没有好好考虑将它们结合在一起。
Perl
曾几何时,几乎每个人都在使用Perl语言编程。但是那些经常使用的人慢慢地发现,关于这个Perl语言似乎总是有点不对劲。至少我知道有这么个叫做“piecemeal”的编程语言,它的创造者似乎就只是将这个功能堆在另一个功能上面而已,并没有好好考虑将它们结合在一起。
事实上,甚至是它的创造者也不得不承认这种编程语言是有问题的。经过完整地改造之后,现在的开发工作开始倾向于使用Perl6,这个大概是在2000年的时候。至于Perl?俨然已经销声匿迹了!所以完全没有必要去学习它了。顺便说一句,下面这个“Goodbye World”就是用Perl写的:
上面这个例子会出来一个网页。现在的Perl,由于可以作为CGI脚本语言,所以使用的最广泛的是在生成web页面上。但是为了适应时代的变化, 我们最好还是将Perl语言“弃之如敝履”。
Ruby
关于Ruby,可以这么唱“十年之后,我不认识你你不属于我……”。因为就在10年前,Ruby语言可谓是风靡一时。它出生于1995年,5年左右达到它的鼎盛时期。如果你经常使用的话,绝对会义无反顾地爱上它。但是,像我们这些学着C语言风格长大的孩子在学习Ruby时往往会觉得有点囧。
下面是用Ruby写的“Goodbye World”:
下面是一个用于计算阶乘的例子:
我测试了这个例子,来计算1000的阶乘。下面是结果(由于篇幅限制,中间略过了2569个数字):
从各方面来看,Ruby都很好,几乎是一片赞誉声……除了Twitter。在2011年4月,Twitter宣称他们已经将几乎大部分的代码都改写过了,以便不必使用Ruby和它的web框架——Ruby on Rails,据他们所说这个平台非常之低效。不过,我想说的是,也正是那一天起,Ruby开始走下坡路,使用的人数也是越来越少。
Visual Basic.NET
十年前,我应聘到一个需要重写大量代码的公司,名字我已经忘记了,主要工作就是将VB6转换为Visual basic.NET。大概就只干了一两个月吧,我就跳槽了:真心太痛苦了。
微软钟爱于BASIC编程语言的扩展可以一路追溯到1991年,那时他们刚刚采购了来自Alan Cooper的一个非常酷(对于那个时候而言)的可视化编程设计。Alan Cooper初期使用的是别的编程语言,但是比尔盖茨让他换成BASIC语言,因为盖茨认为那是当时最为简单的编程语言。于是乎,大名鼎鼎的Visual Basic,就从BASIC中衍生出来——对象这一概念以及新的编程技术问世了。
后面又发生了一些很有意思的事情。Borland Delphi的创造引领者,Anders Hejlsberg也到微软工作,并且引领创建了一个新的编程语言——C#。这种编程语言非常类似于Java语言。刚开始的学习或许有点难,但是一旦上手,你绝对会对它爱不释手。C#很快就成为了微软的旗舰编程语言。现在的话,在软件行业中,有很多很多需要C#的工作岗位,不少都是高薪聘用的。
虽然针对自己的CLR运行,微软创建了C#,但是它的工程师们另外还创建了一个盖茨深爱的BASIC语言版本,命名为Visual Basic.NET。该编程语言借用了BASIC语言的语法,但是它的编码方法却与C#相似。虽然Visual Basic.NET也在发展,但是优胜劣汰总是不可避免的——大家都选择了C#,于是Visual Basic.NET就成为了明日黄花。
下面是摘自微软网页上的一段Visual Basic.NET程序:
这里的“Hello World”也可以替换成“Goodbye World”,这个没关系。
Adobe Flash和AIR
从技术上讲,这些都是平台,而非编程语言。我之所以将它们包含进来是因为如果你想要使用它们,就必须安装Adobe自己的ECMAScript版本,即ActionScript。ActionScript是JavaScript(当前最流行的编程语言之一,因为它能用于所有的浏览器)的一个近亲。ActionScript在ECMAScript(这是JavaScript实现标准的官方名称)中增加了一些细节;但是除了Adobe Flash,其他地方几乎没有ActionScript的用武之地。
你使用Flash不?乔布斯非常讨厌它,并且也不允许iPhone使用它。然后随着iPhone(以及随后的iPad)的逐渐普及,Web开发人员不得不创建不必依赖于Flash的网站。那些以ActionScript为生的开发人员也不得不纷纷下岗。(我曾经看到过一个Flash开发人员指责另一个JavaScript开发人员毁了他的职业生涯。)
Adobe也曾试图通过AIR以求得其编程平台的一线生机,于是配建了一个用于构建AIR app的工具,称为Flex。至于AIR,许多人都说,这是一场灾难。不过我们目前也不知道为什么Adobe会推出AIR,可能是想用AIR取代Flash?也可能是想要AIR和Flash相亲相爱共同发展?
记得有一段时间,得益于Twitter平台——TweetDeck(要求用户在电脑上安装AIR运行时)的使用,AIR很是红火了一阵子。那时大概有数以百万计的pc AIR应用被开发出来,只是后来Twitter在2011年买了TweetDeck之后,又改写本地代码取代了AIR。于是乎,AIR的辉煌就到此为止。
随着Flash和AIR的逐渐逝去,Adobe的ActionScript也开始向世界吻别。下面是一些用ActionScript写的代码示例。
你可能会发现这与JavaScript非常相似,都使用var、function和new,并且也使用小数点来访问成员变量。
Delphi’s Object Pascal
首先我得向我曾经的好伙伴Delphi表示歉意,因为我不得不公布Object Pascal的“死讯”。well,Delphi(用于发Object Pascal的工具)历经变迁之后,依然苟延残喘着(它起源于Borland公司,现在抱着Embarcadero公司的大腿)。
早先Delphi和它的Object Pascal语言确实给我们提供了一个良好的工作环境:虽然有点啰嗦,但是编译器很快,而且相比Visual Basic(这里指的是pre-Visual Basic.NET,1995年左右),创建Windows程序更容易。
但是它的优势并没有持续下去。也很难说是什么原因,因为这个平台真心是不错的。就在这时,Borland公司开始在其Delphi的产品线上支持C#和C++。发展到后来,Borland公司甚至直接将Delphi卖给了Embarcadero公司,然后Embarcadero公司继续使用Delphi开发产品。话说,它做得相当不错,但是重点再也不是Pascal了。当然,你依然可以用Pascal编程,但是几乎没人走这条路了。事实上,我们可以使用Delphi建立许多不同的平台,包括iOS、Android,以及Linux操作系统。
但是,如果你去Embarcadero公司的网站看看,你会发现他们主要是在促进Delphi’s C++ 的支持。因此,换言之就是,Object Pascal已然逝去了。写到这里,我不禁悲从心来,因为我花了很多很多时间来学习Pascal语言,特别是Delphi’s Object Pascal。但是没办法,现实就是如此残酷,不转行就只能饿死。
下面请看Object Pascal的代码:
译者注:以上观点仅代表作者个人观点,请文明礼貌按秩序吐槽。
那么这将“亡”的五大语言中有你所擅长的吗?
?复工大势下,远程办公的 科技 企业只能“坐以待毙”吗?
?美团十年,支撑全球最大规模外卖配送的一站式机器学习平台是如何炼成的?
?腾讯提结合ACNet进行细粒度分类,效果达到最新SOTA | CVPR 2020
?我最喜欢的云 IDE 推荐!
?智能合约编写之Solidity的高级特性
?返鄂复工人员自述:回武汉上班,要先飞合肥,再由公司包车接回去