🍁博主简介:
🏅云计算领域优质创作者
🏅新星计划第三季python赛道第一名
🏅阿里云ACE认证高级工程师
🏅阿里云开发者社区专家博主
✒️博主微信:15575411187
💊交流社区:小鹏linux(个人社区)欢迎您的加入!
目录
| Perl是一个高级的、动态的解释型脚本语言,它的设计借鉴了C、Shell、awk和sed。Perl最重要的特性是它内部集成了正则表达式的功能,以及巨大的第三方代码库CPAN。Perl像C一样强大,同时像awk、sed等脚本语言一样富有表达性。Perl常见于系统管理和文件处理等程序,Perl多数情况下属于Web方案中的胶水语言。 |

| Perl最初的设计者为拉里·沃尔(Larry Wall),于1987年12月18日发表。现在的版本为Perl 6,于2015年12月25日更新。
Perl借取了C、sed、awk、shell 脚本语言以及很多其他程序语言的特性,其中最重要的特性是它内部集成了正则表达式的功能,以及巨大的第三方代码库CPAN。简而言之,Perl像C一样强大,像awk、sed等脚本描述语言一样方便,被Perl语言爱好者称之为“一种拥有各种语言功能的梦幻脚本语言”、“Unix 中的王牌工具”。 Perl 一般被称为“实用报表提取语言”(Practical Extraction and Report Language),你也可能看到“perl”,所有的字母都是小写的。一般,“Perl”,有大写的 P,是指语言本身,而“perl”,小写的 p,是指程序运行解释器。
Perl最重要的就是它的文本处理能力, 而早期生物信息学的本质就是序列分析,所以“确认过眼神,我遇见对的人”,Perl成了生物信息必学语言 |
| Perl语言在Linux系统以及其他类Unix系统,比如说MacOS里都是内置的,所以不需要额外安装,而在Windows系统中则需要额外下载,下载站点当然是官方的<www.perl.org>
很多系统平台上已经默认安装了 perl,我们可以通过以下命令来查看是否已安装: |
- $ perl -v
-
- This is perl 5, version 18, subversion 2 (v5.18.2) built for darwin-thread-multi-2level
- (with 2 registered patches, see perl -V for more detail)
-
- Copyright 1987-2013, Larry Wall
- ……
| 大部分的教程都是让大家写一个Perl脚本,
举例1:比如说hello.pl,代码如下 |
- #!/usr/bin/env perl
- print "hello world \n"
| 然后用 |
perl -e 'print "hello world"'
| 举例2:我们将以下代码放到 hello.pl 文件中: |
- #!/usr/bin/perl
-
- # 输出 "Hello, World"
- print "Hello, world\n";
| 代码中 /usr/bin/perl 是 perl 解释器的路径。在执行该脚本前要先确保文件有可执行权限,我们可以先将文件权限修改为 0755 : |
- $ chmod 0755 hello.pl
- $ ./hello.pl
- Hello, world # 输出结果
| print 也可以使用括号来输出字符串,以下两个语句输出相同的结果: |
- print("Hello, world\n");
- print "Hello, world\n";
什么是 POD?
| Pod(Plain Old Documentation), 是一种简单而易用的标记型语言(置标语言),它经常用于在perl程序和模块中的文档书写。 Pod 的 转化器可以将 Pod 转换成很多种格式,例如 text, html, man 等很多。 Pod 标记语言包含三种基本基本类型: 普通, 原文, 和 命令。
|
- =pod (开始文档)
- =head1 标题文本
- =head2 标题文本
- =head3 标题文本
- =head4 标题文本
- =over 缩进空格数量
- =item 前缀
- =back (结束列表)
- =begin 文档格式
- =end 结束文档格式
- =for 格式文本
- =encoding 编码类型
- =cut (文档结束)
| 在perl中,可以使用 pod2html **.pod >**.html 来生成html格式的pod文档。 考虑以下 POD 实例: |
- =begin html
- =encoding utf-8
- =head1 小鹏linux
- =cut
| Perl 中可以在模块或脚本中嵌入 POD(Plain Old Documentation) 文档。 POD 是一种简单而易用的标记型语言(置标语言)。 POD 文档使用规则: POD 文档以 =head1 开始, =cut 结束, =head1 前与 =cut 后添加一空行。 |
| Perl 会忽略 POD 中的文档。实例如下: |
- #!/usr/bin/perl
-
- print "Hello, World\n";
- =head1 Hello, World 实例
- 这是一个 Perl 的简单实例。
- =cut
- print "Hello, Runoob\n";
| 执行以上程序,输出结果为: |
- Hello, World
- Hello, Runoob
| 可以使用Docker官方的Perl镜像作为基础,在此之上进行必要的定制。 |
| 第一步,下载官方的Perl镜像: |
$ docker pull perl
|
如果大家对Perl的版本有要求,可以在以上命令中加入Tag标签,以便于在下一步的Dockerfile的FROM指令中明确Perl版本号。官方镜像都有明确的标签信息。
|
| 第二步,在Perl项目中新建Dockerfile: |
- FROM perl:5.20
- COPY . /usr/src/myapp
- WORKDIR /usr/src/myapp
- CMD [ "perl", "./perl-sample.pl" ]
| 新建perl-sample.pl文件: |
- #!/usr/bin/perl
- print "Hello, World!\n";
| 第三步,通过此Dockerfile,构建自定义的镜像: |
$ docker build -t perl-image .
| 构建成功后,用户可以通过docker images查看: |
- $ docker images
- REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
- perl-image latest bc28eba086ad About a minute ago 654.9 MB
| 最后,创建容器并运行: |
- $ docker run -it --rm --name perl-container perl-image
- Hello, World!
|
如果大家只需要运行单个的Perl脚本,那么无需使用Dockerfile构建自定义镜像,而是通过以下命令直接使用官方Perl镜像,带参数运行容 器:
|
- $ docker run -it --rm --name perl-container -v "$(pwd)":/usr/src/myapp -w /usr/src/myapp perl:5.20 perl perl-sample.pl
- Hello, World!
|
如果大家需要运行Perl的Web项目,则最好先自建内置SSH服务的镜 像,然后以此为基础定制Perl容器,这样可以方便地通过SSH服务访问Perl容器。
|
