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
-
curl-
一个用于传输数据的命令行工具,支持 HTTP、HTTPS、FTP 等协议。
-
此处用于从指定 URL 下载内容。
-
-
-L选项-
让
curl自动跟随重定向(如果 URL 返回 301/302 跳转,会追踪到最终地址)。 -
例如,
xrl.us是一个 URL 缩短服务,实际会跳转到真实的 Perl 安装脚本地址。 -
L 即 "location"
-
-
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:通过短链接服务网站
-
访问短链接服务提供商的网站(如
xrl.us或bit.ly)。 -
在输入框中粘贴原始 URL(长链接)。
-
点击生成按钮,系统会返回一个短链接(如
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"
-
相关文章:
PERL开发环境搭建>>Windows,Linux,Mac OS
特点 简单 快速 perl解释器直接对源代码程序解释执行,是一个解释性的语言, 不需要编译器和链接器来运行代码>>速度快 灵活 借鉴了C/C, Basic, Pascal, awk, sed等多种语言, 定位于实用性语言,既具备了脚本语言的所有功能,也添加了高级语言功能 开源.免费 没有&qu…...
赛博威智慧导购平台,融合AI激活一线导购效能,破局增长瓶颈
导购管理≠“管人”,价值释放才是终极命题 在快消行业,一线导购是链接品牌与消费者的核心触点,更是市场洞察与销售转化的关键枢纽。然而,许多企业对导购的管理仍停留在“管人”的初级阶段:基础考勤、任务下发、薪资核…...
鸿蒙项目源码-记账本app个人财物管理-原创!原创!原创!
鸿蒙记账项目源码个人财务管理含文档包运行成功ArkTS语言。 我一个月写的原创作品,请尊重原创。 原创作品,盗版必究!!! api12 SDK5.0.0仅适用于最新的2024版本DevEco studio 共9个页面:广告倒计时页、登录、…...
深入理解 `git pull --rebase` 与 `--allow-unrelated-histories`:区别、原理与实战指南
🚀 git pull --rebase vs --allow-unrelated-histories 全面解析 在日常使用 Git 时,我们经常遇到两种拉取远程代码的方式:git pull --rebase 和 git pull --allow-unrelated-histories。它们的区别是什么?各自适用哪些场景&…...
ExpTimerApcRoutine函数分析之作用是ActiveTimerListHead里面移除定时器_etimer
第一部分: VOID ExpTimerApcRoutine ( IN PKAPC Apc, IN PKNORMAL_ROUTINE *NormalRoutine, IN PVOID *NormalContext, IN PVOID *SystemArgument1, IN PVOID *SystemArgument2 ) /* Routine Description: This function is the special …...
Ovito的python脚本
在 OVITO 里,Python 对象是构建脚本化操作的基础。下面为你详细介绍 OVITO 中 Python 对象的基本概念: 1. 数据管道(Pipeline) 数据管道是 OVITO 里最核心的对象之一。它就像一个流水线,把数据输入进来,经过一系列处理步骤,最后输出处理好的数据。 创建管道:借助 imp…...
【免费】2007-2019年各省地方财政文化体育与传媒支出数据
2007-2019年各省地方财政文化体育与传媒支出数据 1、时间:2007-2019年 2、来源:国家统计局、统计年鉴 3、指标:行政区划代码、地区、年份、地方财政文化体育与传媒支出 4、范围:31省 5、指标说明:地方财政在文化、…...
3PL EDI:SA Piper Logistics EDI需求分析
SA Piper Logistics成立于2005年,是一家专注于全球供应链管理的第三方物流服务商(3PL),总部位于美国芝加哥。公司以“优化物流效率,重塑供应链价值”为使命,提供仓储管理、运输规划、订单履行及跨境清关等一…...
NOIP2007提高组.矩阵取数游戏
题目 492. 矩阵取数游戏 思路 不难发现, 每一行之间是独立的, 因此可以求出每一行的最大值, 然后行与行之间最大值相加, 就是总的最大值 对于行内来说, 每次可以选取左边或者右边, 可以使用区间 d p dp dp求解, 时间复杂度 O ( n 3 ) O(n ^ 3) O(n3), 因为列的最大值是 80 …...
项目实战--权限列表
后端数据: 用表格实现权限列表 const dataSource [{key: 1,name: 胡彦斌,age: 32,address: 西湖区湖底公园1号,},{key: 2,name: 胡彦祖,age: 42,address: 西湖区湖底公园1号,}, ];const columns [{title: 姓名,dataIndex: name,key: name,},{title: 年龄,dataInd…...
若依赖前端处理后端返回的错误状态码
【背景】 后端新增加了一个过滤器,用来处理前端请求中的session 若依赖存放过滤器的目录:RuoYi-Vue\ruoyi-framework\src\main\java\com\ruoyi\framework\security\filter\ 【问题】 后端返回了一个状态码为403的错误,现在前端需要处理这…...
【计网】数据包
期末复习自用的,处理得比较草率,复习的同学或者想看基础的同学可以看看,大佬的话可以不用浪费时间在我的水文上了 1.数据包的定义: 数据包是网络通信中的基本单元,它包含了通过网络传输的所有必要信息。数据包的结构…...
web权限划分提权和移权
前言:权限的基本认知 渗透权限划分:假如我们通过弱口令进入到web的后台 这样我们就拿到了web的管理员权限 管理员权限是web中最高的权限(一般我们进入web的时候数据库会进行用户权限的划分:假设 0-10为最高的权限 11-10000为普通…...
LocalDateTime序列化总结
版权说明: 本文由CSDN博主keep丶原创,转载请保留此块内容在文首。 原文地址: https://blog.csdn.net/qq_38688267/article/details/146703276 文章目录 1.背景2.序列化介绍常见场景关键问题 3.总体方案4.各场景实现方式WEB接口EasyExcelMybat…...
[ 春秋云境 ] Initial 仿真场景
文章目录 靶标介绍:外网内网信呼oa永恒之蓝hash传递 靶标介绍: Initial是一套难度为简单的靶场环境,完成该挑战可以帮助玩家初步认识内网渗透的简单流程。该靶场只有一个flag,各部分位于不同的机器上。 外网 打开给的网址, 有一…...
unity 截图并且展现在UI中
using UnityEngine; using UnityEngine.UI; using System.IO; using System.Collections.Generic; using System; using System.Collections;public class ScreenshotManager : MonoBehaviour {[Header("UI 设置")]public RawImage latestScreenshotDisplay; // 显示…...
XHR.readyState详解
XHR.readyState详解 引言 XHR.readyState是XMLHttpRequest对象的一个属性,它反映了当前请求的状态。在Ajax编程中,正确理解和使用XHR.readyState对于调试和确保异步请求的正确执行至关重要。本文将详细介绍XHR.readyState的属性值、含义以及在Ajax请求中的具体应用。 XHR.…...
SQL Server数据库引擎服务启动失败:端口冲突
问题现象: SQL Server 2022 安装完成后,数据库引擎服务无法启动,日志报错 “TCP 端口 1433 已被占用”(ERROR_LOG_SYS_TCP_PORT)。 快速诊断 检测端口占用: # 查看 1433 端口占用情况(需管理员权…...
前端知识点---用正则表达式判断邮箱(javascript)
// 全面的正则(兼容大多数情况) const emailRegex /^[a-zA-Z0-9._%-][a-zA-Z0-9.-]\.[a-zA-Z]{2,}$/;// 或直接使用浏览器内置验证 <input type"email" required>/:正则表达式的起始和结束标志。 ^:匹配字符串的…...
中断管理常用API(四)
一、request_irq(...) request_irq 函数主要用于硬中断相关操作,它的核心作用是把一个中断处理函数和特定的中断号进行绑定。当硬件设备触发该中断号对应的中断时,内核就会调用绑定的中断处理函数,像 irqhandler_func 这类。 此函数在多种硬件…...
RabbitMQ高级特性--重试特性
目录 1.重试配置 2.配置交换机&队列 3.发送消息 4.消费消息 5. 运行程序观察结果 6. 手动确认 注意: 在消息传递过程中, 可能会遇到各种问题, 如网络故障, 服务不可用, 资源不足等, 这些问题可能导致消息处理失败. 为了解决这些问题, RabbitMQ 提供了重试机制, …...
pyspark学习rdd处理数据方法——学习记录
python黑马程序员 """ 文件,按JSON字符串存储 1. 城市按销售额排名 2. 全部城市有哪些商品类别在售卖 3. 上海市有哪些商品类别在售卖 """ from pyspark import SparkConf, SparkContext import os import jsonos.environ[PYSPARK_P…...
C语言入门教程100讲(0)从了解C语言的发展史开始
文章目录 引言1. C语言的起源2. C语言的诞生3. C语言的标准化4. C语言的进一步发展5. C语言的影响与应用6. C语言的未来结语引言 C语言作为一种高效、灵活且具有广泛应用的编程语言,在计算机科学史上占据着举足轻重的地位。它的设计不仅影响了后来的编程语言,也对操作系统、…...
【HTML 基础教程】HTML <head>
HTML <head> 查看在线实例 - 定义了HTML文档的标题"><title> - 定义了HTML文档的标题 使用 <title> 标签定义HTML文档的标题 - 定义了所有链接的URL"><base> - 定义了所有链接的URL 使用 <base> 定义页面中所有链接默认的链接目…...
练习题:111
目录 Python题目 题目 题目分析 需求理解 关键知识点 实现思路分析 代码实现 代码解释 指定文件路径和名称: 定义要写入的内容: 打开文件并写入内容: 异常处理: 输出提示信息: 运行思路 结束语 Python题…...
混合知识表示系统框架python示例
前文我们已经深入学习了框架表示法、产生式规则和一阶谓词逻辑,并对它们进行了深度对比,发现它们在不同的应用场景下各有优缺点。 一阶谓词逻辑适合复杂逻辑推理场景,具有数学定理证明、形式化系统规范的优点;产生式规则适合动态决策系统,支持实时决策(如风控、诊断),规…...
信号集操作函数
目录 一、sigpending函数 功能: 头文件: 函数原型: 函数参数: 返回值: 二、sigemptyset函数 功能: 原型: 参数: 返回值: 三、sigfillset函数 功能…...
学习不同电脑cpu分类及选购指南
关于电脑cpu 一、CPU型号的核心组成与命名规则Intel命名规则:AMD命名规则:5. 后缀:Intel常见后缀及其含义:AMD后缀一些常见的后缀及其含义:二、主流品牌CPU的分类与性能差异三、区分CPU型号的实用方法四、主流品牌CPU对比与选择建议五、选购CPU的注意事项关于不同主流CPU的…...
MATLAB 控制系统设计与仿真 - 30
用极点配置设计伺服系统 方法2-反馈修正 如果我们想只用前馈校正输入,从而达到伺服控制的效果,我们需要很精确的知道系统的参数模型,否则系统输出仍然具有较大的静态误差。 但是如果我们在误差比较器和系统的前馈通道之间插入一个积分器&a…...
Baklib知识中台驱动智能架构升级
构建四库体系驱动架构升级 在数字化转型过程中,企业普遍面临知识资源分散、隐性经验难以沉淀的痛点。Baklib通过构建知识库、案例库、流程库及资源库四层核心体系,为知识中台搭建起结构化基础框架。知识库以AI分类引擎实现文档标签化存储,案…...
