• 【云原生 | 40】Docker快速部署高级动态解释型脚本语言Perl


    🍁博主简介
            🏅云计算领域优质创作者
            🏅新星计划第三季python赛道第一名
            🏅阿里云ACE认证高级工程师
            🏅阿里云开发者社区专家博主
    ✒️博主微信:15575411187
    💊交流社区小鹏linux(个人社区)欢迎您的加入!

    目录

    1. 关于Perl

    2. Perl的安装及基础用法

    3. Perl POD 文档 

    4. 在Docker中部署Perl

      👑👑👑结束语👑👑👑


    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,我们可以通过以下命令来查看是否已安装:

    1. $ perl -v
    2. This is perl 5, version 18, subversion 2 (v5.18.2) built for darwin-thread-multi-2level
    3. (with 2 registered patches, see perl -V for more detail)
    4. Copyright 1987-2013, Larry Wall
    5. ……

    大部分的教程都是让大家写一个Perl脚本,

    举例1:比如说hello.pl,代码如下

    1. #!/usr/bin/env perl
    2. print "hello world \n"

    然后用perl hello.perl执行。当然最快的方法还是用Perl的一行命令, 如下所示。

    perl -e 'print "hello world"'

    举例2:我们将以下代码放到 hello.pl 文件中:

    1. #!/usr/bin/perl
    2. # 输出 "Hello, World"
    3. print "Hello, world\n";

    代码中 /usr/bin/perl 是 perl 解释器的路径。在执行该脚本前要先确保文件有可执行权限,我们可以先将文件权限修改为 0755 :

    1. $ chmod 0755 hello.pl
    2. $ ./hello.pl
    3. Hello, world # 输出结果

    print 也可以使用括号来输出字符串,以下两个语句输出相同的结果:

    1. print("Hello, world\n");
    2. print "Hello, world\n";

    3. Perl POD 文档 

    什么是 POD?

    Pod(Plain Old Documentation), 是一种简单而易用的标记型语言(置标语言),它经常用于在perl程序和模块中的文档书写。

    Pod 的 转化器可以将 Pod 转换成很多种格式,例如 text, html, man 等很多。

    Pod 标记语言包含三种基本基本类型: 普通, 原文, 和 命令。

    • 普通段落: 你可以在普通段落中使用格式化代码,如黑体,斜体,或代码风格,下划线等。

    • 原文段落: 原文段落,用于代码块或者其他不需要转换器处理的部分,而且不需要段落重排。

    • 命令段落: 命令段落作用于整个的文档,通常用于标题设置或列表标记。

      所有的命令段落(他只有一行的长度)使用 "=" 开始,然后是一个标识符。 随后的文本将被这条命令所影响。现在被广泛使用的命令包括

    1. =pod (开始文档)
    2. =head1 标题文本
    3. =head2 标题文本
    4. =head3 标题文本
    5. =head4 标题文本
    6. =over 缩进空格数量
    7. =item 前缀
    8. =back (结束列表)
    9. =begin 文档格式
    10. =end 结束文档格式
    11. =for 格式文本
    12. =encoding 编码类型
    13. =cut (文档结束)

    在perl中,可以使用 pod2html **.pod >**.html 来生成html格式的pod文档。

    考虑以下 POD 实例:

    1. =begin html
    2. =encoding utf-8
    3. =head1 小鹏linux
    4. =cut

    Perl 中可以在模块或脚本中嵌入 POD(Plain Old Documentation) 文档。

    POD 是一种简单而易用的标记型语言(置标语言)。

    POD 文档使用规则:

    POD 文档以 =head1 开始, =cut 结束, =head1 前与 =cut 后添加一空行。

    Perl 会忽略 POD 中的文档。实例如下:

    1. #!/usr/bin/perl
    2. print "Hello, World\n";
    3. =head1 Hello, World 实例
    4. 这是一个 Perl 的简单实例。
    5. =cut
    6. print "Hello, Runoob\n";

    执行以上程序,输出结果为:

    1. Hello, World
    2. Hello, Runoob

    4. 在Docker中部署Perl

    可以使用Docker官方的Perl镜像作为基础,在此之上进行必要的定制。

    第一步,下载官方的Perl镜像:

    $ docker pull perl
    如果大家对Perl的版本有要求,可以在以上命令中加入Tag标签,以便于在下一步的Dockerfile的FROM指令中明确Perl版本号。官方镜像都有明确的标签信息。

    第二步,在Perl项目中新建Dockerfile:

    1. FROM perl:5.20
    2. COPY . /usr/src/myapp
    3. WORKDIR /usr/src/myapp
    4. CMD [ "perl", "./perl-sample.pl" ]

    新建perl-sample.pl文件:

    1. #!/usr/bin/perl
    2. print "Hello, World!\n";

    第三步,通过此Dockerfile,构建自定义的镜像:

    $ docker build -t perl-image .

    构建成功后,用户可以通过docker images查看:

    1. $ docker images
    2. REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
    3. perl-image latest bc28eba086ad About a minute ago 654.9 MB

    最后,创建容器并运行:

    1. $ docker run -it --rm --name perl-container perl-image
    2. Hello, World!
    如果大家只需要运行单个的Perl脚本,那么无需使用Dockerfile构建自定义镜像,而是通过以下命令直接使用官方Perl镜像,带参数运行容 器:
    1. $ docker run -it --rm --name perl-container -v "$(pwd)":/usr/src/myapp -w /usr/src/myapp perl:5.20 perl perl-sample.pl
    2. Hello, World!
    如果大家需要运行Perl的Web项目,则最好先自建内置SSH服务的镜 像,然后以此为基础定制Perl容器,这样可以方便地通过SSH服务访问Perl容器。

      👑👑👑结束语👑👑👑

  • 相关阅读:
    网络营销中 SEO 的作用
    夯基提质|正雅膜片及附件定位系统双升级
    AIGC(生成式AI)试用 7 -- 桌面小程序
    网络攻防
    基于AERMOD模型在大气环境影响评价中的实践
    『力扣刷题本』:链表分割
    内网使用adb工具使用logcat进行日志分析
    想进大厂, Jira 管理平台你会用么?
    特性--反射
    C++-Debug与Release的不同-Debug可行-Release下出错-莫名其妙的bug-AI插件开发
  • 原文地址:https://blog.csdn.net/qq_62294245/article/details/127597100