介绍一些编程语言— Perl 语言

介绍一些编程语言--- Perl 语言

Perl 语言

简介

Perl 是一种动态解释型的脚本语言。 最初的设计者为拉里・沃尔,它于 1987 1987 1987 年 12 12 12 月 18 18 18 日发表。Perl 借取了 C、sed、awk、shell scripting 以及很多其他编程语言的特性。其中最重要的特性是他内部集成了正则表达式的功能,以及巨大的第三方代码库 CPAN。

产生背景

1987 1987 1987 年 Larry Wall 发布 Perl1.0 以来,用户数一直急剧增加,同时越来越多的程序员与软件开发者参与 Perl 的开发。从最初被当做一种跨平台环境中书写可移植工具的高级语言开始,Perl 被广泛地认为是一种工业级的强大工具,可以在任何地方用来完成你的工作。perl 的前身是 Unix 系统管理的一个工具,被用在无数的小任务里。后逐渐发展成为一种功能强大的程序设计语言,用作 Web 编程、数据库处理、XML 处理以及系统管理;在完成这些工作时,同时仍能处理日常细小工作,这是它的设计初衷。Perl 特别适合系统管理和 Web 编程。实际上已经被用在所有 Unix 捆绑在一起作为标准部件发布,同时也用于 Microsoft Windows 和几乎所有操作系统。Perl 的应用非常广泛。

Perl 优点

  • 相比 C、Pascal 这样的"高级"语言而言,Perl 语言直接提供泛型变量、动态数组、Hash 表等更加便捷的编程元素。

  • Perl 具有动态语言的强大灵活的特性,并且还从 C/C++、Basic、Pascal 等语言中分别借鉴了语法规则,从而提供了许多冗余语法。

  • 在统一变量类型和掩盖运算细节方面,Perl做得比其他高级语言(如:Python)更为出色。

  • 由于从其他语言大量借鉴了语法,使得从其他编程语言转到 Perl 语言的程序员可以迅速上手写程序并完成任务,这使得 Perl 语言是一门容易用的语言。

  • Perl 是可扩展的,我们可以通过 CPAN 中心仓库找到很多我们需要的模块。

  • Perl 的 mod_perl 的模块允许 Apache web 服务器使用 Perl 解释器。

Perl 缺点

  • 也正是因为 Perl 的灵活性和"过度"的冗余语法,也因此获得了仅写的"美誉",因为 Perl 程序可以写得很随意,但是可能少写一些字母就会得到意想不到的结果(而不报错),许多 Perl 程序的代码令人难以阅读,实现相同功能的程序代码长度可以相差十倍百倍,这就令程序的维护者(甚至是编写者)难以维护。

  • 同样的,因为 Perl 这样随意的特点,可能会导致一些 Perl 程序员遗忘语法,以至于不得不经常查看 Perl 手册。

  • 建议的解决方法是在程序里使用 use strict;以及 use warnings,并统一代码风格,使用库,而不是自己使用"硬编码"。Perl 同样可以将代码书写得像 Python 或 Ruby 等语言一样优雅。

  • 很多时候,perl.exe 进程会占用很多的内存空间,虽然只是一时,但是感觉不好。

简单程序

输出 Hello World

perl 复制代码
#!C:\Perl\bin                    #Windows 平台下  
#!/usr/bin/env perl              #Linux 环境下  
print "Hello,World!\n";     

A + B problem

perl 复制代码
my $in = <STDIN>;
chomp $in;
$in = [split /[\s,]+/, $in];
my $c = $in->[0] + $in->[1];
print "$c\n";

参考

相关推荐
Kisorge18 分钟前
【C语言】指针数组、数组指针、函数指针、指针函数、函数指针数组、回调函数
c语言·开发语言
轻口味1 小时前
命名空间与模块化概述
开发语言·前端·javascript
晓纪同学2 小时前
QT-简单视觉框架代码
开发语言·qt
威桑2 小时前
Qt SizePolicy详解:minimum 与 minimumExpanding 的区别
开发语言·qt·扩张策略
飞飞-躺着更舒服2 小时前
【QT】实现电子飞行显示器(简易版)
开发语言·qt
明月看潮生2 小时前
青少年编程与数学 02-004 Go语言Web编程 16课题、并发编程
开发语言·青少年编程·并发编程·编程与数学·goweb
明月看潮生2 小时前
青少年编程与数学 02-004 Go语言Web编程 17课题、静态文件
开发语言·青少年编程·编程与数学·goweb
Java Fans3 小时前
C# 中串口读取问题及解决方案
开发语言·c#
盛派网络小助手3 小时前
微信 SDK 更新 Sample,NCF 文档和模板更新,更多更新日志,欢迎解锁
开发语言·人工智能·后端·架构·c#
Chinese Red Guest3 小时前
python
开发语言·python·pygame