不使用 require 确定模块的绝对路径

2024-04-13

在某些情况下,您需要确定 Perl 的绝对路径名 模块,但不需要加载 Perl 模块:

use strict;
use warnings;

my $mod_name = 'My::Module';
my $abs_path = mod_name_to_abs_path( $mod_name );

sub mod_name_to_abs_path {
    my ( $mod_name ) = @_;

    my $rel_fn = $mod_name =~ s{::}{/}gr;
    $rel_fn .= '.pm';
    require $rel_fn;

    return $INC{$rel_fn};
}

上面的代码加载模块(使用require).

如何在不使用 require 的情况下确定模块的绝对路径名?


我将此解决方案发布到我自己的问题中,因为我找不到执行此操作的 CPAN 模块。

use strict;
use warnings;
use File::Spec;

my $mod_name = 'My::Module';
my $abs_path = mod_name_to_abs_path( $mod_name );

sub mod_name_to_abs_path {
    my ( $mod_name ) = @_;

    my $rel_fn = $mod_name =~ s{::}{/}gr;
    $rel_fn .= '.pm';
    my $abs_path;
    for my $dir (@INC) {
        if ( !ref( $dir ) ) {
            my $temp = File::Spec->catfile( $dir, $rel_fn );
            if ( -e $temp  ) {
                if ( ! ( -d _ || -b _ ) ) {
                    $abs_path = $temp;
                    last;
                }
            }
        }
    }
    return $abs_path;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

不使用 require 确定模块的绝对路径 的相关文章

  • 如何在 Moose 中存储哈希值的哈希值?

    我想知道 在 Moose 中存储哈希值的最佳方式是什么 让我们以这样的哈希为例 my hash step1 gt extraction gt object1 analysis gt object2 step2 gt extraction g
  • 如何在 Perl 中取消导入函数?

    我正在尝试删除导入的符号 以便它们不能用作对象中的方法 但是no似乎不起作用 也许我不明白不 或者还有其他方法 use 5 014 use warnings use Test More still has carp after no car
  • Perl Mongo 查找对象 ID

    你会认为这是一件简单的事情 我有一个集合中的对象 ID 列表 我想根据对象 ID 获取单个记录 谷歌搜索过 但没有任何帮助 所以我有对象 ID 5106c7703abc120a04070b34 my client MongoDB Mongo
  • 哪一个代表null? undef 或空字符串

    我想插入null在表的一列中 哪一个代表null undef或空字符串 应该使用哪一种 为什么 我知道关于defined我可以检查一下 但我更多的是从数据库的角度来看 代表哪一个null更合适吗 Update 我在用DBI module D
  • perl xs - 从 c 数组返回 perl 数组

    使用 XS 我尝试将值从 C 数组传递到可在脚本中使用的 Perl 数组 这是我的 xs 文件中的代码 AV DoubleArray getPerlArray CODE r newAV for size t i 0 i lt THIS gt
  • 检测 perl 中声明的包变量

    Given package main our f sub f sub g 1 我怎样才能确定 f 但不是 g 已宣布 即兴的 我以为 main g SCALAR 可能是未定义的 但它是一个善意标量参考值 背景 我想将一个变量导入到main
  • 如何在 perl 程序中查找打开的全局文件句柄

    我刚刚发现一个问题 我必须关闭所有打开的文件句柄才能让我的 Apache cgi 脚本继续 我将问题追溯到 Parse RecDescent usr bin env perl use strict use warnings use feat
  • Perl 中的全局变量、子程序变量问题

    如何将子程序变量值转移到另一个子程序变量中 我可以使用全局变量吗 sub foo my myvar Hello sub foo1 my myvar1 myvar how can I get the Hello from myvar 我尝试使
  • 将相同匹配模式的连续 2 行放入单行中

    我想解析这组行 以便如果得到相同的模式 例如 lt email protected cdn cgi l email protection gt 在连续的行中 它应该以单行形式打印 并在两行之间使用 q2VDWKkY010407 222187
  • 如何编写 Perl 脚本来使用 curl 处理 URL?

    我有一个非常简单的任务 我有一个 crontab 每小时运行一个脚本 该脚本旨在简单地处理 URL 这就是我所拥有的 这不起作用 我收到语法错误 usr bin perl curl http domain com page html 我已经
  • 向用户提示多个问题(是/否和文件名输入)

    我想问用户多个问题 我有两种类型的问题 是 否或文件名输入 我不知道如何将这一切放入一个好的if结构 我不确定是否也应该使用 else 语句 有人可以帮我们解决这个问题吗 这是我到目前为止所拥有的 print Do you want to
  • 如何将 Perl 转换为 C?

    有没有可用的工具可以将 Perl 源代码转换为 C 源代码 什么平台都可以 对此的规范答案是MJD 的 为什么不将 Perl 翻译成 C http www perl com pub a 2001 06 27 ctoperl html
  • 在 Ubuntu 中执行 .cgi 文件

    我在 Ubuntu 下运行 Apache PHP 当我运行 cgi 文件时 通过http localhost mycgi cgi 浏览器将显示代码而不是运行它 如何让浏览器执行 CGI 文件而不是显示其内容 将这些行添加到您的 apache
  • 如何将会话管理添加到简单的 Perl CGI 网页?

    我有一个简单的网页 到目前为止不需要任何登录 它是用 Perl CGI 编程的 我想知道添加会话支持以便获得登录信息的步骤 我不需要非常复杂的方法 因为网页非常简单 另外 我想要一些关于支持 Perl 会话所需的技术 库的建议 我在很多很多
  • 有没有办法匹配任意 Unicode 字母字符?

    我有一些文档经过 OCR 从 PDF 转换为 HTML 因此 他们最终会出现很多随机的 unicode 标点符号 而转换器会搞砸 即省略号等 他们还正确地有一堆非英语但仍然是字母字符 如 和俄语字符等 有没有办法制作一个匹配任何 unico
  • 如何在附加的 sqlite 数据库中创建外键?

    我正在尝试创建一个 sqlite3 数据库作为模拟生产环境的测试环境 由于生产的设置方式 表处于多个模式中 我已经在 DBIx Class 中设置了类 使用 schema gt storage gt dbh do将数据库与架构附加在一起 并
  • 无法从日志文件中提取特定信息

    我这里有日志文件我想提取以下信息 想要提取十六进制值 如果该行有第二个括号 0 9 想要提取十进制值 首先转换为十六进制 然后提取 9 gt 0x09 想要提取负值 25 先转换为十六进制然后提取 例如 25 gt FFE7 gt 想要提取
  • 在 Windows 7 中使用 ActivePerl @ARGV 为空

    我有以下 Perl 脚本 我正在尝试使用 ActivePerl 在 Windows 7 中运行它 c Perl64 bin perl exe w use strict my mp3splt exe c Program Files x86 m
  • 如何在 Perl 中复制整个目录?

    我需要将整个目录复制到某个位置 最好的方法是什么 File Copy正如我所见 仅逐个文件复制 顺便说一句 我在Windows下工作 感谢帮助 也许调查一下文件 复制 递归 http metacpan org pod File Copy R
  • Perl 语言的目标是在运行时生成快速的程序吗?

    最近有朋友告诉我 看 Perl 从来就不是为了快而设计的 真的吗 我能找到的相关信息是来自维基百科 http en wikipedia org wiki Perl Overview 该语言旨在实用 易于使用 高效 完整 而不是美观 微小 优

随机推荐

  • 使用 android espresso 访问自定义可扩展列表中的子项

    我正在尝试访问自定义可扩展列表中的子项 该列表如下所示 自定义可扩展列表 http foodaversions com aversions cropped png 我可以通过以下方式成功访问组 Espresso onView allOf w
  • beautifulsoup:导入错误:没有名为 html.entities 的模块

    我试图让这个模块在服务器上工作 但我在标题中收到错误 我的脚本 from bs4 import BeautifulSoup 当我运行它时 aclark tycho python test py Traceback most recent c
  • 将项目附加到 WPF 中的数据绑定 ItemsControl

    我有一个组合框 它与项目的 ObservableCollection 进行数据绑定 我想要一个默认选定的项目 无 它将我绑定到 SelectedValue 的属性的值设置为 null 我认为应该有一种方法可以通过 Style DataTem
  • 如何在 Hibernate 中创建/调用 sql 视图

    这是在中创建的视图document hbm xml
  • 从 DateTime 系列中的多个 CSV 文件设置 MultiIndex DataFrame

    我有一个 CSV 格式的时间序列价格数据列表 其读法如下 asxList ANZ NAB WBC for asxCode in asxList ohlcData pd DataFrame from csv asxCode CSV heade
  • Elixir GenServer 并行handle_call

    Phoenix框架上有一个应用程序 需要 GenServer 它将检查一些值 这些值的验证从控制器开始 来自客户端的请求 GenServer 值检查 客户端接收响应 一旦handle call是同步的 那么当10个客户端同时调用10个han
  • 在 shUnit2 中重定向文件输出的单元测试 bash 脚本

    我正在使用 shUnit2 在 Bash shell 脚本中进行单元测试 我有这样的代码 cat gt etc somefile lt
  • 图像未从 Firebase 存储下载

    我正在尝试将图像从新的 Firebase 存储下载到本地文件 为此 我使用 Firebase 提供的示例here https firebase google com docs storage ios download files downl
  • Django:查询抽象基类

    我遇到过这样的情况 我正在对一场足球比赛进行建模 每场比赛都有一组与之相关的事件 这些事件与比赛期间发生的事情有关 所以有点像这样 class Event models Model time models IntegerField clas
  • 从图像中获取主色并丢弃背景

    从图像中获取主色的最佳 结果 而不是性能 算法是什么 该算法应该丢弃图像的背景 我知道我可以构建一个颜色数组以及它们在图像中出现的数量 但我需要一种方法来确定什么是背景 什么是前景 并且在读取主色时只记住第二个 前景 这个问题非常困难 特别
  • Pythoncurses不显示颜色,而Cncurses工作正常

    我似乎无法让 Pythoncurses 模块显示颜色 而 ncurses C 库工作正常 这是一个应该可以工作的简单脚本 import curses def main stdscr if not curses has colors rais
  • 更新嵌入数据,例如 sysdata.rda

    我最近向 CRAN 提交的内容被退回了 因为我有一份关于全球环境的作业 但现在这已引起人们的不满 我有一个嵌入式数据集 sysdata rda 其中包含基于用户所在州 如美国 的配置参数 我希望当新用户使用该程序时可以更新此嵌入数据集 我之
  • 将提交从一个子树应用到同一存储库中的另一个子树

    我一直在使用 git p4 将 Perforce 存储库的部分内容克隆到 git 存储库中 我检查的树具有以下 Perforce 分支 结构 回购 发布回购 发布B仓库 功能仓库 功能B 我的本地 git 存储库中有一堆 git 提交到 f
  • 如何在搜索 api 中排除转发和回复?

    如何在搜索 api 中排除转发和回复 我正在尝试使用搜索 api 从 Twitter 获取提要 结果我也收到了回复和转发 所以我想排除回复和转发 怎么办谁帮帮我 这是我的网址 我认为上面的内容是不正确的 您可以在搜索 API 中使用过滤器
  • Flutter硬件音量键检测?

    迄今为止所有的挖掘都表明https github com flutter moum flutter hardware buttons https github com flutter moum flutter hardware button
  • 如何实时更新 NetworkX 图?

    我正在尝试在画布中使用 matplotlib 更新 networkx 图 但它每次都会向图表添加一个新图表 而不是更新下面的图表 我必须将调用添加到nx draw networkx 函数让它更新 我不确定这是否是问题的一部分 示例代码 im
  • 如何使用PyCharm调试Scrapy项目

    我正在使用 Python 2 7 开发 Scrapy 0 20 我发现 PyCharm 有一个很好的 Python 调试器 我想用它来测试我的 Scrapy 蜘蛛 有人知道该怎么做吗 我尝试过的 Actually I tried to ru
  • boost::bind 和类成员函数

    考虑以下示例 include
  • UIScrollView 内容插入不适用于键盘高度

    我正在尝试移动一个UIScrollView当键盘隐藏一个UITextField通过使用更改大小contentInsets如图所示 但是 它不适用于键盘高度 键盘高度为 216 但如果我将 iPhone 纵向模式的底部插入设置为 515 将
  • 不使用 require 确定模块的绝对路径

    在某些情况下 您需要确定 Perl 的绝对路径名 模块 但不需要加载 Perl 模块 use strict use warnings my mod name My Module my abs path mod name to abs pat