如何在运行时替换 Moose 对象的方法?

2024-01-30

是否可以在运行时替换 Moose 对象的方法? 通过查看源代码Class::MOP::Method http://search.cpan.org/perldoc/Class::MOP::Method (which Moose::Meta::Method http://search.cpan.org/perldoc/Moose::Meta::Method继承自)我的结论是,通过这样做

 $method->{body} = sub{ my stuff }

我将能够在运行时替换对象的方法。 我可以使用该方法

 $object->meta->find_method_by_name(<method_name>);

然而,这并没有完全奏效。

是否可以在运行时修改方法?那么,Moose 有什么方法可以做到这一点呢?


不管是不是驼鹿,这听起来都不是一个好主意。

相反,将您的对象设计为具有该方法的访问器。例如,您班级的用户可以使用My::Frobnicator->frobnicator->()获取并调用frobnicator方法及用途My::Frobnicator->frobnicator(sub { } )来设置它。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在运行时替换 Moose 对象的方法? 的相关文章

  • 哪些字符可以用作正则表达式分隔符?

    哪些字符可以用作 Perl 正则表达式的分隔符 m re m re and m re 一切似乎都有效 但我想知道所有可能性 From perlop http perldoc perl org perlop html 通过 m 您可以使用任意
  • Perl 如何存储/处理非常大的数字?是否应该使用模块来代替 Perl 的默认处理方法?

    我需要添加 50 位数字 因此我将它们作为 字符串 处理 并编写了自己的函数将它们相加 后来 为了它的地狱 我尝试了这个 readFile shift ARGV sub readFile my file shift contains a b
  • “get”在 Perl 中不起作用

    我是 Perl 新手 在过去的几天里 我制作了一些简单的脚本 通过 get 将网站的源代码保存到我的计算机上 他们做了他们应该做的事情 但不会获得论坛网站的内容 非论坛网站工作得很好 知道发生了什么事吗 这是问题块 my url http
  • C++ 在运行时分配 const 值?

    我有一个在运行时永远不会改变的恒定值 但在运行时之前不可能知道 有没有一种方法可以在不定义常量的情况下声明常量 无论是否作为类的成员 并在确定后 且仅一次 分配一个计算值 或者我是否必须诉诸非常量声明并使用编码 S Ps ALL CAPS变
  • 使用 unix ksh shell 脚本或 perl 脚本监视文件夹中的新文件并触发 perl 脚本

    我已经在谷歌搜索和溢出了一段时间 但找不到任何可用的东西 我需要一个脚本来监视公共文件夹并在创建新文件时触发 然后将文件移动到私有位置 我有一个 samba 共享文件夹 exam ple 在 UNIX 上映射到X 在窗户上 在某些操作中 t
  • 如何在Python中另一个类的函数中获取调用者类名?

    我的目标是模拟应用程序的序列图 为此我需要有关运行时调用者和被调用者类名的信息 我可以成功检索调用者函数 但无法获取调用者类名 Scenario caller py import inspect class A def Apple self
  • 如何从 Perl 中的 Subversion 预提交挂钩访问提交的文件?

    我需要执行以下操作 用 Perl 编写预提交钩子 Hook 应检查所有提交的文件是否存在某些文本 如果未找到该文本则失败 基本上 我需要一个读取正在提交的文件的 Perl 钩子示例 我真的在寻找一些代码量最少的优雅解决方案 笔记 钩子应该使
  • 匹配有限自然数列

    我怎样才能匹配有限自然数 http en wikipedia org wiki Natural number正则表达式系列 所以 要求是 字符串包含数字和空格 作为分隔符 第一个数字是1 每个数字 第一个数字除外 等于前一个数字 1 应该是
  • 结束 perl 脚本而不等待系统调用返回

    我在 Linux Ubuntu 14 04 上运行一个简单的 apache Web 服务器 并使用 perl CGI 脚本处理一些请求 该脚本使用以下命令启动系统命令system函数 但我希望它立即返回 无论系统调用的结果如何 我一直在传递
  • 更新命令行输出

    我的程序 碰巧是用 Perl 编写的 尽管我不认为这个问题是 Perl 特定的 在程序中的某一点输出状态消息 Progress x yy where x and yy是一个数字 例如 Progress 4 38 我想在打印新的状态消息时 覆
  • 多维哈希排序 - Perl [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我真的需要一些帮助来理解这个哈希并对
  • 为什么Perl的SUPER调用不使用箭头方法?

    我注意到 当您调用超类的方法时 您需要执行以下操作 my self class gt SUPER new 为什么不是这样 my self class gt SUPER gt new 我怀疑是因为 class gt SUPER gt new
  • Perl6:我怎样才能使所有警告都是致命的?

    我怎样才能使 Perl6 中的所有警告都是致命的 以便脚本在屏幕上出现警告时立即终止 CONTROL when CX Warn note exit 1 更频繁地死亡 该脚本终止于CONTROL when CX Warn note exit
  • Perl 中的布尔函数应该返回什么值?

    简短的问题 在 Perl 代码库中一致表示真假的最佳方法是什么 1 0 1 Perl 原生布尔运算符的特殊空字符串 return undef 即空列表 问题背景 我们都知道 Perl 在布尔值方面非常灵活 就像大多数事情一样 例如 Perl
  • 从 java 与 C++ 程序通信

    我想从 java 中执行外部 exe 程序 exe 是一个 CLI 应用程序 它在运行时 scanf 中获取输入并根据输入进行输出 我可以使用 java 调用要执行的程序 Process p Runtime getRuntime exec
  • 如何比较两个文件中的多列并在找​​到匹配时从另一列检索相应的值

    我有两个文件 File1 txt 和 File2 txt 我需要将 File1 中的三列 1 2 和 3 分别与 File2 的 4 5 和 6 进行比较 如果找到匹配项 我想从 File2 的第 2 列中检索相应的值并将其粘贴到输出中 T
  • Perl Tk 模块有哪些缺点?

    与在 Perl 中创建 GUI 的其他解决方案相比 Tk 模块有哪些缺点 我最近浏览了 Perl 的各种 gui 模块 这是我的总结 免责声明 最终我发现现有模块都不能满足我的需求 所以我开始编写自己的 gui 工具包 Tk 工作起来很不错
  • Path::Class::File 或 ::Dir & Moose 初始化和强制

    目前有 package Local use warnings use Moose use Method Signatures Simple use Path Class File use Path Class Dir method buil
  • 从 java 程序中编译 .java 文件?

    我找到了这段代码 JavaCompiler compiler ToolProvider getSystemJavaCompiler if compiler run null null null fileName 0 System err p
  • 使用 Perl 获取 值

    因此 我有一个报告工具 可以在 HTML 文件中输出作业调度统计信息 并且我希望使用 Perl 来使用这些数据 但我不知道如何单步浏览 HTML 表 我知道如何使用 jQuery 来做到这一点 find tr each function v

随机推荐

  • 在 html 电子邮件中发送个性化图像的推荐方式是什么?

    我知道已经有人问过类似的问题 但答案几乎总是相同的 您需要在服务器上共享图像并从电子邮件中链接到它 为了我的目的 我不能那样做 图像需要针对我发送电子邮件的每个用户进行个性化 因此将为每个用户动态生成电子邮件 并且不会始终相同 我无法共享图
  • LINQ to SQL 通配符

    如何在 LINQ To SQL lambda 表达式中构建通配符 这就是我目前所拥有的 var query from log in context Logs select log foreach string filter in Custo
  • 将列表项转换为元组

    我有一个这样的清单 February 01 2011 February 28 2011 March 01 2011 March 31 2011 我想将其转换为 February 01 2011 February 28 2011 March
  • 如何从数组中获取唯一值

    请注意这是针对 OSX 的 不适用于 iOS 我在其他问题中查看并尝试了一些解决方案 但似乎没有一个对我有用 因此 我想从数组中获取一组独特的年份 我的代码是这样的 NSMutableArray unique NSMutableArray
  • 使用 PEAR/Mail_Queue 发送 10,000 多封电子邮件的最佳方式

    我有一个 cron 它生成整个邮件信息并使用以下命令放入数据库表中 mail queue gt put 可以选择在发送电子邮件后将其删除 这是我需要一点帮助的地方 在获得上述信息后 发送电子邮件的最佳方式是什么 运行 mail queue
  • 自动布局:layoutMarginsGuide

    如何重写视觉格式 addConstraints NSLayoutConstraint constraintsWithVisualFormat label options AlignAllBaseline metrics nil views
  • 为什么我的列表项项目符号与浮动元素重叠

    我有一个 XHTML Strict 页面 其中我将图像与常规文本段落一起浮动 一切都很顺利 除非使用列表而不是段落 列表的项目符号与浮动图像重叠 更改列表或列表项的边距没有帮助 边距是从页面左侧开始计算的 但浮动会将列表项推到右侧insid
  • 无法使用 Apache PDFBOX 验证数字签名

    我是使用数字签名的新手 在其中一个项目中 我们使用 Apache PdfBox 来处理数字签名的 pdf 文件 虽然我们可以测试所有功能 但签名 pdf 文件的验证是我们无法破解的 我们使用 BouncyCastle 作为提供者 下面是代码
  • Tomcat连接器connectionTimeout和keepAliveTimeout之间的关系

    我想知道tomcat连接器的connectionTimeout和keepAliveTimeout属性之间的关系是什么 它们是否应该设置为相同的值 因为它是默认值 keepAliveTimeout 小于 connectionTimeout 有
  • 我的 PHP 会话不会保存在 hostgator 上

    意料之外 如何解决这个问题 我的会话无法在 Hostgator 服务器上运行 但在其他服务器上它工作正常 这是代码示例
  • 通过 cython 从 c 调用 python 代码

    所以我想通过 cython 从 c 调用一些 python 代码 我已经设法从 c 调用 cython 代码 我还可以从 cython 调用 python 代码 但当我把它们加在一起时 有些东西就不见了 这是我的Python代码 quack
  • 解析 Pandas DataFrame 中的日期/时间字符串

    我有以下 Pandas 系列日期 时间 pd DataFrame GMT 13 Feb 20089 30 AM 22 Apr 20098 30 AM 14 Jul 20108 30 AM 01 Jan 20118 30 AM GMT 13
  • 在 Heroku Laravel 实例上设置 HTTPS 重定向

    我有一个在 apache Heroku 实例上运行的 Laravel 5 版本 我试图确保所有流量都通过 https 转换 但是我非常迷失 我已成功启动并运行 SSL 证书 但是 使用 Heroku 您无法直接编辑服务器上的 htacces
  • 计算零膨胀的 glmmTMB 预测的置信区间

    我正在尝试计算零通胀的 glmmTMB 模型预测的置信区间 我浏览了 github 上发布的一些问题以及描述 glmmTMB 的原始论文 然而 glmmTMB 似乎发生了轻微的变化 我对正确的使用方法感到非常困惑 这是我到目前为止所看到的
  • 使用 docker-compose 删除指定卷?

    如果我有一个 docker compose 文件 例如 version 3 services postgres image postgres 9 4 volumes db data var lib db volumes db data 然后
  • DIV 绝对定位 - 浏览器窗口调整大小后保持位置

    我正在以绝对位置显示 div my label list style none list style type none position absolute top 2px left 10px width 20px height 20px
  • 如何在 Angular Material 中使用

    我想知道如何使用材质的图标 因为这不起作用
  • 更改 RecyclerView 中单个可绘制对象的颜色将更改所有可绘制对象

    我只是尝试根据一个值更改行内可绘制对象的颜色 但适配器更改了所有可绘制对象 而不是一个可绘制对象 这是我的适配器 public class ReportAdapter extends RecyclerView Adapter
  • Angular2在按钮单击时验证表单

    如果我使用提交表单button type submit 出现表单验证消息 一切正常 但是 如果我有一个按钮 或链接 click myhandler 那么验证不会出现 我怎样才能 将元素标记为需要验证器运行 或者 以编程方式运行并显示验证消息
  • 如何在运行时替换 Moose 对象的方法?

    是否可以在运行时替换 Moose 对象的方法 通过查看源代码Class MOP Method http search cpan org perldoc Class MOP Method which Moose Meta Method htt