当前位置: 首页 > news >正文

perl的package中“Subroutine new redefined”问题

我在一个脚本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文件的文件名一致。

应该改成:

package Add_mismatch;

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

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(重定义,重写)"操作。

相关文章:

  • UDP协议栈之整体架构处理
  • 【Prometheus01】可观测性系统之Prometheus简介、优缺点对比、组件介绍、数据采集流程、TSDB简介
  • 【MATLAB例程】AOA(到达角度)法,多个目标定位算法,三维空间、锚点数量自适应(附完整代码)
  • JavaWeb基础五(MVC)
  • matlab数值精度就1e15
  • 基于Spring Boot的民宿租赁系统的设计与实现(LW+源码+讲解)
  • Maxscript如何通过单击现有按钮添加新按钮?
  • Leetcode做题记录----3
  • 如何在Linux中切换用户?
  • Linux--进程优先级
  • docker部署sflow-rt使用
  • PHP与MySQL的高效数据交互:最佳实践与优化技巧
  • java 中判断对象是否可以被回收和 GCROOT
  • 每日Attention学习25——Multi-Scale Attention Fusion
  • 结构体1~5(1414. 期末考试成绩排名、1490. 坐标排序、1315. 遥控飞机争夺赛、1730. 购买贺年卡、1499. 宇宙总统2)
  • Windows Qt动态监测系统分辨率及缩放比变化
  • LGA封装 Z3588开发板,8K视频编解码
  • 设计模式使用Java案例
  • 《AI大模型趣味实战》No2 : 快速搭建一个漂亮的AI家庭网站-相册/时间线/日历/多用户/个性化配色(中)
  • Leetcode-131.Palindrome Partitioning [C++][Java]
  • 连续两个交易日涨停,华夏幸福:生产经营活动正常,不存在影响股价波动的重大事宜
  • 新质观察|低空货运是城市发展低空经济的第一引擎
  • 上海银行副行长汪明履新上海农商银行党委副书记
  • 美俄亥俄州北部发生火车撞人事故,致2人死亡、至少1人失踪
  • 上海明天短暂恢复晴热最高32℃,一大波雨水在候场
  • 上海这场有温度的“人才集市”,为更多人才搭建“暖心桥”