PERL开发环境搭建>>Windows,Linux,Mac OS

特点

简单

快速

perl解释器直接对源代码程序解释执行,是一个解释性的语言, 不需要编译器和链接器来运行代码>>速度快

灵活

借鉴了C/C++, Basic, Pascal, awk, sed等多种语言, 定位于实用性语言,既具备了脚本语言的所有功能,也添加了高级语言功能

开源.免费 

没有"源代码保护条款" 

应用场合

开发环境搭建

Windows下搭建

下载安装软件

 1.自己安装编译器>>下载Perl模块>>依次进行编译,注册安装

2.下载已经编译好的文件,直接安装

区别: 前一种方法可以安装所有的模块, 后一种方法只能安装预先设定好的模块. 一般编译好的模块都包括了日常所需的模块>>初学者建议选择第二种

Strawberry perl的安装 :  Strawberry perl的下载,查询版本号,配置Path环境变量,查找perl解释器的位置-CSDN博客

其他软件: ActivePerl 

2.点击文件进行安装

3.设置环境变量

安装软件(ActivePerl ,ActivePerl )时,软件会自动设置环境变量, 有时由于系统的兼容性问题, 需要手动设置

设置环境变量的目的是: 在使用Perl时, 只需要输入perl, 可以不带绝对路径>>让系统认识这四个字母

设置环境变量的方法:Strawberry perl的下载,查询版本号,配置Path环境变量,查找perl解释器的位置-CSDN博客

4.测试安装是否成功

Strawberry perl的下载,查询版本号,配置Path环境变量,查找perl解释器的位置-CSDN博客

在Linux下搭建

下载 → 解压 → 配置 → 编译 → 安装

以下所有命令均在Linux终端中执行 

1.检查是否自带Perl

大多数Linux系统自带perl, 但可能存在版本过旧的问题

2.下载安装源码

如果系统没有Perl, 下载安装源码

# 示例下载链接(需替换为实际版本)
wget https://www.cpan.org/src/5.0/perl-5.20.2.tar.gz
  • 作用:从 Perl 官网 下载指定版本的源码压缩包。

注意:需确保系统已安装 wget 或 curl

如果官方链接失效,可通过国内镜像(如阿里云、清华源)下载 Perl 源码包

wget https://mirrors.aliyun.com/CPAN/src/5.0/perl-5.20.2.tar.gz

检查wget是否安装

检查cur1是否安装

如果未安装,根据系统包管理器安装

安装后再次运行 which 或 --version 命令确认是否成功

3. 解压源码包

tar zxvf perl-5.20.2.tar.gz -C /usr/local/src
  • 作用:解压下载的 tar.gz 文件到 /usr/local/src 目录。

  • 参数解释

    • z:解压 .gz 格式。"gzip"

    • x:解压文件。"extract"

    • v:显示解压过程(可选)。"verbose"

    • f:指定文件名。"file"

    • -C:指定解压目标目录。"change directory"

  • 执行位置:在终端中运行,需确保当前用户对 /usr/local/src 有写入权限。

4. 创建安装目录

mkdir /usr/local/perl

没有root权限时 

sudo mkdir /usr/local/perl

5.  进入解压目录

cd /usr/local/src/perl-5.20.2

如果解压路径不同,需调整命令中的路径

6. 配置编译选项

./Configure -des -Dprefix=/usr/local/perl -Dusethreads -Uversiononly
  • ./Configure
    Perl 的配置脚本(注意首字母大写 C,这是 Perl 特有的脚本名称)。

  • -des

    • -d:使用默认答案(非交互式安装)。"default"

    • -e:静默模式(不显示冗长输出)。"execute" 或 "environment"

    • -s:跳过部分非必要提示, 静默安装。"silent"

  • -Dprefix=/usr/local/perl
    指定安装路径,编译后的 Perl 会安装到 /usr/local/perl/bin/,避免覆盖系统自带 Perl。-Dprefix 指的是"destination prefix"目标安装路径

  • -Dusethreads
    启用线程支持(需系统具备线程库,如 pthread)。-Dusethreads 选项代表的是 "enable threads", 在编程和命令行参数中,-D 前缀通常用于表示 "define" 或 "enable" 的意思。这种用法源自于 C 语言和 Unix 系统中的宏定义,其中 -D 用于定义宏。

  • -Uversiononly
    禁用仅保留版本号命名的 Perl 二进制, -Uversiononly 选项代表 "Universal version only"。这个参数用于指定在安装或编译 Perl 时,只使用通用的版本命名(如 perl),而不是特定版本的命名(如 perl5.20.2

7.编译和安装

make      # 编译源码(可能耗时较长)
make test # 可选:运行测试套件
sudo make install  # 安装到指定前缀路径

 8.替换系统自带的 Perl 版本

 备份系统自带的 Perl
sudo mv /usr/bin/perl /usr/bin/perl.bak

创建符号链接
sudo ln -sf /usr/local/perl/bin/perl /usr/bin/perl
  • sudo:以超级用户(root)权限执行命令。sudo 代表 "superuser do"。

  • ln:命令用于创建链接,可以是硬链接或符号链接。ln 代表 "link"。

  • -s:指定创建符号链接(软链接)。s 代表 "symbolic"。

  • -f:如果目标链接已经存在,强制删除并重新创建。f 代表 "force"。(若未备份原文件,需谨慎使用)

 测试是否安装成功

perl -version

如果返回” This is perl 5, version ......” 说明安装成功

9. 执行perl脚本

方法1

通过 Perl 解释器显式运行

perl test.pl
  • 无需 shebang 和文件权限,直接调用当前环境的 perl 解释器。

是否要配置 PATH 环境变量 

 1.不需要配置 PATH 的情况

系统默认 Perl 路径已包含在 PATH 中

运行

which perl

若输出类似 /usr/bin/perl,则说明已全局可用

2.需要配置 PATH 的情况

自定义安装路径

# 临时生效(仅当前终端)
export PATH=/usr/local/perl/bin:$PATH# 永久生效(添加到 ~/.bashrc 或 ~/.bash_profile)
echo 'export PATH=/usr/local/perl/bin:$PATH' >> ~/.bashrc
source ~/.bashrc

之后才能直接调用 perl test.pl(否则需写全路径 /usr/local/perl/bin/perl test.pl) 

多版本共存时切换默认 Perl

若系统存在多个 Perl 版本(如系统自带 /usr/bin/perl 和自定义安装 /usr/local/perl/bin/perl),需通过 PATH 优先级控制默认版本。

临时切换

# 使用自定义版本优先
export PATH=/usr/local/perl/bin:$PATH# 使用系统版本优先
export PATH=/usr/bin:$PATH

永久切换

# 永久生效(添加到 ~/.bashrc 或 ~/.bash_profile)
echo 'export PATH=/usr/local/perl/bin:$PATH' >> ~/.bashrc
source ~/.bashrc
方法2

 给perl脚本文件添加执行权限

chmod +x test.pl

必须在脚本第一行指定 Perl 解释器路径

#!/usr/bin/perl
# 或使用自定义路径(如新安装的 Perl)
#!/usr/local/perl/bin/perl

执行

./test.pl
  • ./ 表示当前目录(相对路径),避免被系统误认为是命令。

Mac  OS下搭建

 MacO系统默认自带安装了Perl,也可通过Xcode来重新安装Perl

进入 App Store,搜索并安装 Xcode(苹果官方开发工具包)。

在Applications->Utilities下打开Terminal.app,

输入

curl-L http://xrl.us/installperlosx | bash
  1. curl

    • 一个用于传输数据的命令行工具,支持 HTTP、HTTPS、FTP 等协议。

    • 此处用于从指定 URL 下载内容。

  2. -L 选项

    • 让 curl 自动跟随重定向(如果 URL 返回 301/302 跳转,会追踪到最终地址)。

    • 例如,xrl.us 是一个 URL 缩短服务,实际会跳转到真实的 Perl 安装脚本地址。

    • L 即 "location"

  3. http://xrl.us/installperlosx

    • 这是 Perl 官方为 macOS 提供的安装脚本的短链接。

    • 实际会跳转到类似 https://raw.githubusercontent.com/perlbot/installperlosx/main/installperlosx 的地址(具体以官方为准)。

   4. | bash

  • 将下载的脚本内容通过管道( | )传递给 bash 解释器直接执行,完成 Perl 的自动安装。

安装完成后,在终端中perl-v查看已安装的Perl版本信息

在终端中用 perl<程序名>来运行Per程序

短链接 

http://xrl.us/installperlosx 是一个 URL 短链接,它的作用是将一个很长的原始网址压缩成简短易记的形式。

xrl.us 

是 Perl 社区中一个知名的 URL 短链接服务,专门为 Perl 相关的资源、文档、邮件列表或讨论提供简短的网址。它的域名是 "xrl.us"(发音类似 "short URL")

短链接如何映射到原始链接

短链接服务(如 xrl.us)维护一个 数据库,存储短链接和原始 URL 的对应关系

如何根据原始 URL 创建短链接
方法 1:通过短链接服务网站
  1. 访问短链接服务提供商的网站(如 xrl.us 或 bit.ly)。

  2. 在输入框中粘贴原始 URL(长链接)。

  3. 点击生成按钮,系统会返回一个短链接(如 http://xrl.us/installperlosx)。

方法 2:通过 API(编程方式)

部分服务提供 API,可通过代码生成短链接。例如:

终端输入

curl -X POST https://api.xrl.us/create \-d "url=https://raw.githubusercontent.com/perlbot/installperlosx/main/installperlosx"

返回结果可能包含短链接

{"short_url": "http://xrl.us/installperlosx"}

解释命令

curl

  • 功能:一个用于传输数据的命令行工具,支持多种协议(HTTP/HTTPS/FTP 等)。

  • 此处作用:向指定的 API 发送 HTTP 请求。

-X POST

  • 功能:指定 HTTP 请求方法为 POST(用于提交数据)。

  • 说明:创建资源时通常使用 POST 方法。

https://api.xrl.us/create

  • 功能:目标 API 地址(假设的短链接服务接口)。

  • 说明:

    • api.xrl.us:短链接服务提供商的 API 域名。

    • /create:生成短链接的接口路径。

-d "url=原始URL"

  • 功能:发送 POST 请求的正文数据(表单格式)。

  • 参数:

    • url=:服务商定义的参数名(表示要缩短的原始 URL)。

    • 后面的长链接是待缩短的目标地址。

    • -d 代表"data"

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/75342.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ubuntu改用户权限

在 Linux 系统中&#xff0c;赋予普通用户 sudo 权限可以让他们执行一些需要 root 权限的命令&#xff0c;而不需要频繁切换到 root 用户。以下是具体步骤&#xff1a; 创建用户(useradd和adduser两种方式) 首先&#xff0c;需要创建一个新的用户。可以使用 adduser 或 usera…

蓝桥杯 web 学海无涯(axios、ecahrts)版本二

答案&#xff1a; // TODO: 待补充代码// 初始化图表的数据&#xff0c;设置周视图的初始数据 option.series[0].data [180, 274, 253, 324, 277, 240, 332, 378, 101]; // 周数据&#xff08;每周的总学习时长&#xff09; option.xAxis.data ["2月第1周", "…

Java 大视界 -- Java 大数据在智慧文旅虚拟场景构建与沉浸式体验增强中的技术支撑(168)

&#x1f496;亲爱的朋友们&#xff0c;热烈欢迎来到 青云交的博客&#xff01;能与诸位在此相逢&#xff0c;我倍感荣幸。在这飞速更迭的时代&#xff0c;我们都渴望一方心灵净土&#xff0c;而 我的博客 正是这样温暖的所在。这里为你呈上趣味与实用兼具的知识&#xff0c;也…

API vs 网页抓取:获取数据的最佳方式

引言 在当今数字化时代&#xff0c;对于企业、研究人员以及开发人员而言&#xff0c;获取准确且及时的数据是大多数项目成功的关键因素。目前&#xff0c;收集网页数据主要有两种常用方法&#xff0c;即使用 API&#xff08;应用程序接口&#xff09;和网页抓取。然而&#xf…

车载以太网网络测试-25【SOME/IP-报文格式-1】

目录 1 摘要2 SOME/IP-报文格式2.1 **Service ID / 16 bits**2.2 **Method ID / Event ID / 16 bits**2.3 **Length / 32 bits**2.4 **Client ID / 16 bits**2.5 Session ID / 16 bits2.6 Protocol Version / 8 bits2.7 Interface Version / 8 bits2.8 Message Type / 8 bits2.…

Python数据可视化-第3章-图表辅助元素的定制

环境 开发工具 VSCode库的版本 numpy1.26.4 matplotlib3.10.1 ipympl0.9.7教材 本书为《Python数据可视化》一书的配套内容&#xff0c;本章为第3章-图表辅助元素的定制 本章主要介绍了图表辅助元素的定制&#xff0c;包括认识常用的辅助元素、设置坐标轴的标签、设置刻度范…

小程序30-wxml语法-声明和绑定数据

小程序页面中使用的数据均需要在Page() 方法的 data对象中进行声明定义 在将数据声明好以后&#xff0c;在 WXML 使用 Mustache 语法 ( 双大括号{{ }} ) 将变量包起来&#xff0c;从而将数据绑定 在 {{ }} 内部可以做一些简单的运算&#xff0c;支持如下几种方式: 算数运算三…

ubuntu开启黑屏现象解决

文章目录 前言一、问题描述二、解决方案1. 检查显卡驱动解决步骤&#xff1a; 2. 修复 GRUB 配置解决步骤&#xff1a; 3. 使用恢复模式解决步骤&#xff1a; 三、验证与总结 前言 在使用 Ubuntu 操作系统时&#xff0c;一些用户可能会遇到开机后屏幕黑屏的现象。这种问题可能…

Modbus TCP转Profibus DP网关接防撞雷达与PLC通讯

Modbus TCP转Profibus DP网关接防撞雷达与PLC通讯 在工业自动化领域&#xff0c;通信协议的多样性既是技术进步的体现&#xff0c;也给系统集成带来了挑战。Modbus TCP和Profibus DP是两种广泛应用于不同场景下的通信标准&#xff0c;它们各有优势但也存在着互操作性的需求。本…

分布式锁方案-Redisson

分布式锁&#xff1a;Redisson还实现了Redis文档中提到像分布式锁Lock这样的更高阶应用场景。事实上Redisson并没有不止步于此&#xff0c;在分布式锁的基础上还提供了联锁&#xff08;MultiLock&#xff09;&#xff0c;读写锁&#xff08;ReadWriteLock&#xff09;&#xff…

【AI插件开发】Notepad++ AI插件开发实践:从Dock窗口集成到功能菜单实现

一、项目背景与技术选型 在上篇文章实现"选中即问AI"功能的基础上&#xff0c;本文重点解决AI对话窗口的集成与核心功能菜单的开发。通过Notepad插件体系&#xff0c;我们将实现以下功能矩阵&#xff1a; AI交互系统&#xff1a;支持自然语言提问与任务执行代码智能…

ControlNet-Tile详解

一、模型功能与应用 1. 模型功能 ControlNet-Tile模型的主要功能是图像的细节增强和质量提升。它通过以下几个步骤实现这一目标&#xff1a; 语义分割&#xff1a;模型首先对输入的图像进行语义分割&#xff0c;识别出图像中不同的区域和对象。这一步是为了让模型理解图像的内…

英飞凌高信噪比MEMS麦克风驱动人工智能交互

导言 在英飞凌&#xff0c;我们一直坚信卓越的音频解决方案对于提升消费类设备的用户体验至关重要。我们坚定不移地致力于创新&#xff0c;在主动降噪、语音透传、录音室录音、音频变焦和其他相关技术方面取得了显著进步&#xff0c;对此我们深感自豪。作为MEMS麦克风的领先供…

【Azure】如何使用 Docker CLI 和 Compose 将容器部署到 Azure ACI

推荐超级课程: 本地离线DeepSeek AI方案部署实战教程【完全版】Docker快速入门到精通Kubernetes入门到大师通关课AWS云服务快速入门实战在云中运行容器可能既困难又令人困惑。有太多选项可供选择,而且还需要理解从虚拟网络到安全性的不同云服务的工作方式。更不用说编排器了。…

结构化剪枝(Structured Pruning)与动态蒸馏(Dynamic Distillation)

结构化剪枝&#xff08;Structured Pruning&#xff09;技术详解 核心原理 结构化剪枝通过模块级&#xff08;如层、通道、块&#xff09;而非单个权重的方式去除冗余参数&#xff0c;保留关键子网络。其优势在于&#xff1a; 硬件友好性&#xff1a;生成规则稀疏模式&#x…

linux shell 删除空行(remove empty lines)

命令行 grep -v ^$ file sed /^$/d file 或 sed -n /./p file awk /./ {print} file 或 awk {if($0!" ") print} tr -s "n"vim交互 %s/^n//g

数据库6(数据库指令)

之前所学的指令均为查找指令&#xff0c;即select相关语句 接下来的语句是增删改查的其他三部分&#xff0c;即增删改 1.删除 删除操作是三个操作中较为简单的&#xff0c;因为它只需要考虑数据的完整性 在实验时可以用表的复件来操作&#xff0c;防止操作不当导致数据库被…

web网页上实现录音功能(vue3)

文章目录 一. 前言二. 技术实现1.核心API介绍2.模板部分3.核心逻辑实现 4. 关键功能点解析 三. 完整代码四. 功能扩展建议 一. 前言 在Web开发中实现音频录制功能是许多应用场景的常见需求。本文将通过一个完整的Vue 3组件示例&#xff0c;详细解析如何利用现代浏览器API实现网…

安美数字酒店宽带运营系统存在SQL注入漏洞

免责声明&#xff1a;本号提供的网络安全信息仅供参考&#xff0c;不构成专业建议。作者不对任何由于使用本文信息而导致的直接或间接损害承担责任。如涉及侵权&#xff0c;请及时与我联系&#xff0c;我将尽快处理并删除相关内容。 漏洞描述 安美数字酒店宽带运营系统的lang…

206. 反转链表 92. 反转链表 II 25. K 个一组翻转链表

leetcode Hot 100系列 文章目录 一、翻转链表二、反转链表 II三、K 个一组翻转链表总结 一、翻转链表 建立pre为空&#xff0c;建立cur为head&#xff0c;开始循环&#xff1a;先保存cur的next的值&#xff0c;再将cur的next置为pre&#xff0c;将pre前进到cur的位置&#xf…