在Perl中,如何检查从哪个模块导入一个给定的功能?

前端之家收集整理的这篇文章主要介绍了在Perl中,如何检查从哪个模块导入一个给定的功能?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个调用函数代码。但是我不知道这个功能所属的模块。我需要它来修改这个功能

我该怎么检查?

解决方法

Devel::Peek模块非常方便地获取有关变量的各种信息。您可以使用它的一个事情是转储对子例程的引用,并获取其来自的glob的名称
$  perl -MDevel::Peek -MList::Util=first -e'Dump(\&first)'
SV = IV(0x1094e20) at 0x1094e28
  REFCNT = 1
  FLAGS = (TEMP,ROK)
  RV = 0x11183b0
  SV = PVCV(0x10ff1f0) at 0x11183b0
    REFCNT = 3
    FLAGS = (POK,pPOK)
    PROTOTYPE = "&@"
    COMP_STASH = 0x0
    XSUB = 0x7f7ecbdc61b0
    XSUBANY = 0
    GVGV::GV = 0x11183c8        "List::Util" :: "first"
    FILE = "ListUtil.c"
    DEPTH = 0
    FLAGS = 0x800
    OUTSIDE_SEQ = 0
    PADLIST = 0x0
    OUTSIDE = 0x0 (null)

GVGV :: GV部分在这里是重要的一点。

一个替代解决方案是Sub :: Identify,它真的只给你提供给你的代码引用的名字。然而,知道Devel :: Peek在许多其他情况下也很方便,所以我首先提到。

原文链接:https://www.f2er.com/Perl/173051.html

猜你在找的Perl相关文章