perl的package中“Subroutine new redefined”问题

news/2025/3/17 19:25:44/

我在一个脚本run_PMseq.V8.pl调用了一些.pm文件 

$perl -c run_PMseq.V8.pl
Subroutine new redefined at /mnt/lustre/user/wubin/01.Program/Scripts/01.script/GeneLab/PMSeq/package_V3/Add_mismatch.pm line 25.
Subroutine generate_shell redefined at /mnt/lustre/user/wubin/01.Program/Scripts/01.script/GeneLab/PMSeq/package_V3/Add_mismatch.pm line 32.
Subroutine get_all_shell redefined at /mnt/lustre/user/wubin/01.Program/Scripts/01.script/GeneLab/PMSeq/package_V3/Add_mismatch.pm line 133.
run_PMseq.V8.pl syntax OK

检查的时候发现这个错误。

后来才发现问题在这里:

package的名没有与pm文件的文件名一致。

应该改成:

perl">package Add_mismatch;

原因是,我在  run_PMseq.V8.pl脚本里面这样调用的:

perl">use Map_PMDB;
use Add_mismatch;

这样做的后果就是, 调用 Map_PMDB.pm的时候, 存在new,generate_shell,get_all_shell等方法。

当我调用“Add_mismatch.pm”的时候, 由于我写的是“package Map_PMDB”, 程序认为我调用的仍然是Map_PMDB,而Add_mismatch.pm中也存在new,generate_shell,get_all_shell等方法。

这就导致程序认为我将Map_PMDB模块中的new,generate_shell,get_all_shell等方法做了"redefine(重定义,重写)"操作。


http://www.ppmy.cn/news/1579881.html

相关文章

PHP语言的区块链扩展性

PHP语言的区块链扩展性 引言 区块链技术因其去中心化、透明性和不可篡改的特性而备受关注,已被广泛应用于金融、物流、供应链管理、数字身份等多个领域。而在构建区块链应用时,开发语言的选择至关重要。PHP作为一种流行的服务器端脚本语言,…

前端面试:axios 请求的底层依赖是什么?

在前端开发中,Axios 是一个流行的 JavaScript 库,用于发送 HTTP 请求。它简化了与 RESTful APIs 的交互,并提供了许多便利的方法与配置选项。要理解 Axios 的底层依赖,需要从以下几个方面进行分析: 1. Axios 基于 XML…

零基础掌握分布式ID生成:从理论到实战的完整指南 [特殊字符]

一、为什么需要分布式ID? 🤔 在单机系统中,使用数据库自增ID就能满足需求。但在分布式系统中,多个服务节点同时生成ID时会出现以下问题: ID冲突:不同节点生成相同ID 扩展困难:数据库自增ID无法…

HCIE考试经验分享:我的华为云服务HCIE认证奋斗史

在HCIE的征途上,每一步都充满了挑战,但每一步也都充满了可能。 回顾我们陈同学的Pass,他的坚持和努力,在华为HCIE认证的道路上,留下了自己坚实的足迹。 在这条充满挑战与机遇的旅程中,陈同学并不孤单。他…

python中print函数的flush如何使用

在 Python 中,print 函数的 flush 参数是一个布尔值,默认值为 False。当设置为 True 时,它会强制将输出缓冲区的内容立即刷新到目标设备(通常是控制台),而不是等待缓冲区满或者程序结束时才输出。 要注意fl…

Flutter 边框按钮:OutlinedButton 完全手册与设计最佳实践

目录 1. 引言 2. OutlinedButton 的基本用法 3. 主要属性 3.1 核心属性详解 3.2 ButtonStyle 子属性详解 (styleFrom/copyWith) 状态响应优先级说明 4. 自定义按钮样式 4.1 修改边框颜色和文本颜色 4.2 修改按钮形状 4.3 修改按钮大小 4.4 集中演示 5. 结论 相关推…

【贪心算法】柠檬水找零

1.题目解析 860. 柠檬水找零 - 力扣(LeetCode) 2.讲解算法原理 分情况讨论 5---》直接收下 10---》找五元,收下 20----》105△ ----》555 由于5元更有用,则尽可能保留5元 3.代码 class Solution {public boolean lemonadeCh…

CLR中的类型转换

CLR中的类型转换 字符串类型转换容器类型转换自定义类型相互转换项目设置CLR(Common Language Runtime,公共语言运行时)是微软.NET框架的核心组件,是微软对 CLI 标准的具体实现,负责管理和执行托管代码,提供跨语言互操作性、内存管理、安全性等关键服务CLR的类型转换机制…