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

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


http://www.kler.cn/a/588658.html

相关文章:

  • (六)Spring Boot学习——spring security做基于方法的认证
  • IMX6ULL学习整理篇——UBoot的一些基础知识(1.编译流程)
  • 使用yolov8+flask实现精美登录界面+图片视频摄像头检测系统
  • 电机控制常见面试问题(十一)
  • 【CSS】一、基础选择器
  • 蓝桥杯好题推荐---激光炸弹
  • 【蓝桥杯每日一题】3.16
  • 【Agent】OpenManus 项目架构分析
  • 技术栈分享之----Swagger
  • 专题|Python贝叶斯金融数据应用实例合集:随机波动率SV模型、逻辑回归、参数更新、绩效比较BEST分析亚马逊股票、普尔指数...
  • 思维训练让你更高、更强 |【逻辑思维能力】「刷题训练笔记」假设法模式逻辑训练题(6-16)
  • JVM常用概念之即时常量
  • Bash语言的智能家居
  • airtest用法
  • 网络VLAN技术详解:原理、类型与实战配置
  • 重生之我在学Vue--第16天 Vue 3 插件开发
  • Django中的查询条件封装总结
  • 蓝桥杯——车牌(dfs全排列问题)
  • 【R语言入门】向量,存储和计算
  • Oracle Linux Server 7.9安装fail2ban