【云原生 | 40】Docker快速部署高级动态解释型脚本语言Perl
Perl是一个高级的、动态的解释型脚本语言,它的设计借鉴了C、Shell、awk和sed。Perl最重要的特性是它内部集成了正则表达式的功能,以及巨大的第三方代码库CPAN。Perl像C一样强大,同时像awk、sed等脚本语言一样富有表达性。Perl常见于系统管理和文件处理等程序,Perl多数情况下属于Web方案中的胶水语言。
🍁博主简介:
🏅云计算领域优质创作者
🏅新星计划第三季python赛道第一名
🏅阿里云ACE认证高级工程师
🏅阿里云开发者社区专家博主
✒️博主微信:15575411187
💊交流社区:小鹏linux(个人社区)欢迎您的加入!
目录
1. 关于Perl
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成了生物信息必学语言 |
2. 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";
3. Perl POD 文档
什么是 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
4. 在Docker中部署Perl
可以使用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容器。
|
👑👑👑结束语👑👑👑
更多推荐
所有评论(0)