首页 > 编程语言 >Perl——介绍

Perl——介绍

时间:2023-05-06 14:00:10浏览次数:34  
标签:语言 编程语言 介绍 Perl 程序员 Pascal 欧莱礼

 

Perl的骆驼图案

Perl骆驼是欧莱礼媒体(O'Reilly Media)设计给Perl编程语言的图标。它也是一种黑客的象征,出现在某些T-shirt和其他衣服标签上。

欧莱礼拥有此图像之商标,并且宣称,唯有在捍卫“符号之完整性”时,才会行使其法律上的权力。[2]欧莱礼允许此商标在非商业目的之前提下被使用,并同时供了Programming Republic of Perl的图像以及Powered by Perl的按钮图。[3]然而,骆驼其实从未被考虑成为Perl的官方识别符号,真要说有的话,其识别符号其实是羊驼

 

Perl的简介

Perl原名pearl,但是在这个语言官方发表前,拉里·沃尔发现已经有个编程语言“pearl”,便将这个编程语言的名字改成Perl。对于Perl这四个字母,有一些解释,包括充满幽默感的“Pathologically Eclectic Rubbish Lister”。“Practical Extraction and Report Language”曾经出现在很多有关Perl的资料里,包括官方的主页。不过事实上这个长名字是后来凑出来的。它的名字第一个字母大写(Perl)时就指这个编程语言,无大写字母(perl)时就指它的直译器。将Perl写成“PERL”是不适当的,因为它并非一个缩写字。

Perl 语言的中心思想
Perl 语言的中心思想可以集成为一句话:More Than One Way To Do It.(不只一种方法来做这件事。)

Easy things should be easy, and hard things should be possible.

 

优点
为了实现这样的目标,并且又因为 Larry Wall 本人也是一个语言学家,他设计Perl语言时使用了很多语言学的思维。相比 C、Pascal 这样的“高级”语言而言,Perl语言直接提供泛型变量、动态数组、Hash表等更加便捷的编程元素。Perl 具有动态语言的强大灵活的特性,并且还从C/C++、Basic、Pascal 等语言中分别借鉴了语法规则,从而提供了许多冗余语法。使得程序员可以忽略计算机内部资料存储、类型、处理方法、运算规则、甚至内存越界等等的细节,而将思考中心放在所需要的程序逻辑上。就这一点而言,很多 Perl 程序员认为目前只有 Perl、Python等泛型语言才能称为“高级”语言,而 C、Pascal 甚至 C++ 这些只能称为“中高级”语言而已。可以说,在统一变量类型和掩盖运算细节方面,Perl 做得比 Python 更为出色。
由于从其他语言大量借鉴了语法,使得从其他编程语言转到 Perl 语言的程序员可以迅速上手写程序并完成任务,这使得 Perl语言是一门容易用的语言。但问题是这样写出来的“类xx语言”的 Perl 程序对不熟悉这种语言的程序员却如同天书,这使得 Perl 语言易写不易读。

缺点
也正是因为 Perl 的灵活性和“过度”的冗余语法,也因此获得了 write-only 的“美誉”,因为许多 Perl 程序的代码令人难以阅读,实现相同功能的程序代码长度可以相差十倍百倍。 但 Perl 同样可以将代码书写得像 Python 或 Ruby 等语言一样优雅。

参考:https://baike.c114.com.cn/view.asp?id=14415-A90690C5

 

标签:语言,编程语言,介绍,Perl,程序员,Pascal,欧莱礼
From: https://www.cnblogs.com/Formulate0303/p/17377048.html

相关文章

  • 电动汽车的历史及充电桩管理云平台的介绍
    安科瑞虞佳豪纯电动汽车的历史是什么?几年前,电动汽车技术进步缓慢,传统汽车占据主导地位。—2000年,石油危机催生了电动汽车的首次发展热潮。—2000年,排放法规带动电动汽车迎来了第二次热潮。—2000年,交通能源战略转型推动电动汽车进入第三次热潮。2000年,新一轮科技......
  • KNN中不同距离度量对比和介绍
    k近邻算法KNN是一种简单而强大的算法,可用于分类和回归任务。他实现简单,主要依赖不同的距离度量来判断向量间的区别,但是有很多距离度量可以使用,所以本文演示了KNN与三种不同距离度量(Euclidean、Minkowski和Manhattan)的使用。KNN算法概述KNN是一种惰性、基于实例的算法。它的工......
  • Rabbitmq 介绍 、安装、基于Queue实现生产者消费者模型、基本使用、消息安全之ack、du
    师承老刘llnb一、消息队列介绍1.1介绍消息队列就是基础数据结构中的“先进先出”的一种数据机构。想一下,生活中买东西,需要排队,先排的人先买消费,就是典型的“先进先出”1.2MQ解决什么问题MQ是一直存在,不过随着微服务架构的流行,成了解决微服务之间问题的常用工具。应用解耦......
  • 支持Emuelec的晶晨S905盒子介绍
    这里只讨论可以从U盘或TF卡启动Emuelec的盒子。S905注意需要刷非NG版本的镜像,相关dtb可以在这里寻找EmuELEC各个版本dtb文件下载。 1,斐讯N1配置芯片:S905D,ARMCortex-A53,四核2GHz存储:2G+8G网口:1Gbps其他接口:1个HDMI接口、2个USB2.0接口 2,数码视讯Q5江苏移动......
  • 关于Class.forName(className).newInstance()介绍
    Class.forName(xxx.xx.xx) 返回的是一个类首先你要明白在java里面任何class都要装载在虚拟机上才能运行。这句话就是装载类用的(和new 不一样,要分清楚)。 至于什么时候用,你可以考虑一下这个问题,给你一个字符串变量,它代表一个类的包名和类名,你怎么实例化它?只有你提到的这个方......
  • 嵌入式常见文件系统介绍
    文件系统简介大多数的嵌入式设备使用闪存作为存储的媒介。同时,在很多客制化的电子产品中大小和启动的时间也非常重要。因此选择特殊的文件系统来满足所需的某种特性,如强大的压缩能力,或直接从闪存中执行文件的能力。MTDMemoryTechnologyDevices注意,闪存可以由Linux的Memory......
  • 内网穿透工具介绍-外网访问电脑本地服务器
    最近在自己家里的台式机上部署了minigpt4大模型,因此想让其他朋友来尝试以下,所有需要内网穿透工具我们在做开发时,不想购买服务器,只想搭建我们本地的服务器,我们搭建的本地服务器只能供我们自己电脑的浏览器访问,或者处于同一个wifi下的手机访问,但是我们如果想让别人访问到我们......
  • jsjiami.v6加密逆向分析介绍
    随着互联网的不断发展,网站的安全性越来越受到重视。JS混淆加密技术是一种常用的保护网站安全的手段。jsjiami.v6是一款常用的JS混淆加密工具,下面我们来详细了解一下。首先,我们来看一下一个使用jsjiami.v6进行混淆加密的案例代码:eval(function(p,a,c,k,e,r){e=function(c){returnc.t......
  • 基于SqlSugar的开发框架循序渐进介绍(29)-- 快速构建系统参数管理界面-Vue3+ElementPlus
    在随笔《基于SqlSugar的开发框架循序渐进介绍(28)--快速构建系统参数管理界面》中介绍了基于SqlSugar开发框架,构建系统参数管理的后端API部分,以及WInform界面部分内容,本篇随笔介绍基于Vue3+ElementPlus的前端界面开发过程。1、Winform端界面的回顾系统参数的信息,设计为包含一个大......
  • Django笔记三十五之admin后台界面介绍
    本文首发于公众号:Hunter后端原文链接:Django笔记三十五之admin后台界面介绍这一篇介绍一下Django的后台界面使用。Django自带了一套后台管理界面,可用于我们直接操作数据库数据,本篇笔记目录如下:创建后台账号以及登录操作注册后台显示的数据表列表字段的显示操作字段值......