Moose 与 Perl 类似 C++ 的 OOP 用法

2023-12-21

我一直在玩Moose,找到了感觉。我想要一个纯虚函数的例子,就像 C++ 中的那样,但用 Moose 的说法(特别是以 C++ 的方式)。我知道即使 Moose 强加了比普通 Perl 更严格的模型,仍然有不止一种方法可以完成我所要求的任务(通过方法修饰符或SUPER::来电)。这就是为什么我特别要求尽可能类似于 C++ 的实现。至于“为什么?”这个限制?主要是出于好奇,但也计划使用 Moose 将一些 C++ 代码移植到 Perl,以 C++ 为中心的人们可以这样做mostly认同.


我可以想到使用角色而不是子类化的方式:

{
    package AbstractRole;
    use Moose::Role;
    requires 'stuff';  
}

{
    package Real;
    use Moose;
    with 'AbstractRole';
}

这会产生编译错误,因为 Real 没有stuff定义的。

Adding stuffReal 方法现在将使其工作:

{
    package Real;
    use Moose;
    with 'AbstractRole';

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

Moose 与 Perl 类似 C++ 的 OOP 用法 的相关文章

  • boost::multi_index_container 复合键中的 equal_range 与比较运算符

    我正在尝试从多索引容器查询结果 其中值类型是三个元素的结构 第一个值已给出 但第二个和第三个值必须大于或小于查询参数 经过搜索后 我发现必须实现自定义密钥提取器 并且这里的一些链接建议相同 但我无法实现它 boost multi index
  • 创建 DirectoryEntry 实例以供测试使用

    我正在尝试创建 DirectoryEntry 的实例 以便可以使用它来测试将传递 DirectoryEntry 的一些代码 然而 尽管进行了很多尝试 我还是找不到实例化 DE 并初始化它的 PropertyCollection 的方法 我有
  • 属性对象什么时候创建?

    由于属性实际上只是附加到程序集的元数据 这是否意味着属性对象仅根据请求创建 例如当您调用 GetCustomAttributes 时 或者它们是在创建对象时创建的 或者 前两个的组合 在由于 CLR 的属性扫描而创建对象时创建 从 CLR
  • 嵌入式系统中的malloc [重复]

    这个问题在这里已经有答案了 我正在使用嵌入式系统 该应用程序在 AT91SAMxxxx 和 cortex m3 lpc17xxx 上运行 我正在研究动态内存分配 因为它会极大地改变应用程序的外观 并给我更多的力量 我认为我唯一真正的路线是为
  • 如何在我的应用程序中使用 Windows Key

    Like Windows Key E Opens a new Explorer Window And Windows Key R Displays the Run command 如何在应用程序的 KeyDown 事件中使用 Windows
  • 使用 C# 在 WinRT 中获取可用磁盘空间

    DllImport kernel32 dll SetLastError true static extern bool GetDiskFreeSpaceEx string lpDirectoryName out ulong lpFreeBy
  • 如何针对 Nancy 中的 Active Directory 进行身份验证?

    这是一篇过时的文章 但是http msdn microsoft com en us library ff650308 aspx paght000026 step3 http msdn microsoft com en us library
  • 为什么模板不能位于外部“C”块内?

    这是一个后续问题一个答案 https stackoverflow com questions 4866433 is it possible to typedef a pointer to extern c function type wit
  • A* 之间的差异 pA = 新 A;和 A* pA = 新 A();

    在 C 中 以下两个动态对象创建之间的确切区别是什么 A pA new A A pA new A 我做了一些测试 但似乎在这两种情况下 都调用了默认构造函数 并且仅调用了它 我正在寻找性能方面的任何差异 Thanks If A是 POD 类
  • 使用向量的 merge_sort 在少于 9 个输入的情况下效果很好

    不知何故 我使用向量实现了合并排序 问题是 它可以在少于 9 个输入的情况下正常工作 但在有 9 个或更多输入的情况下 它会执行一些我不明白的操作 如下所示 Input 5 4 3 2 1 6 5 4 3 2 1 9 8 7 6 5 4 3
  • 编译的表达式树会泄漏吗?

    根据我的理解 JIT 代码在程序运行时永远不会从内存中释放 这是否意味着重复调用 Compile 表达式树上会泄漏内存吗 这意味着仅在静态构造函数中编译表达式树或以其他方式缓存它们 这可能不那么简单 正确的 他们可能是GCed Lambda
  • 更改窗口的内容 (WPF)

    我创建了一个简单的 WPF 应用程序 它有两个 Windows 用户在第一个窗口中填写一些信息 然后单击 确定 这会将他们带到第二个窗口 这工作正常 但我试图将两个窗口合并到一个窗口中 这样只是内容发生了变化 我设法找到了这个更改窗口内容时
  • 检查 url 是否指向文件或页面

    我们需要以下内容 如果文件确实是文件 则从 URL 下载该文件 否则 如果它是一个页面 则什么也不做 举个简单的例子 我有以下命令来下载文件 My Computer Network DownloadFile http www wired c
  • 在 URL 中发送之前对特殊字符进行百分比编码

    我需要传递特殊字符 如 等 Facebook Twitter 和此类社交网站的 URL 为此 我将这些字符替换为 URL 转义码 return valToEncode Replace 21 Replace 23 Replace 24 Rep
  • 将日期参数传递给对 MVC 操作的 ajax 调用的安全方法

    我有一个 MVC 操作 它的参数之一是DateTime如果我通过 17 07 2012 它会抛出一个异常 指出参数为空但不能有空值 但如果我通过01 07 2012它被解析为Jan 07 2012 我将日期传递给 ajax 调用DD MM
  • EPPlus Excel 更改单元格颜色

    我正在尝试将给定单元格的颜色设置为另一个单元格的颜色 该单元格已在模板中着色 但worksheet Cells row col Style Fill BackgroundColor似乎没有get财产 是否可以做到这一点 或者我是否必须在互联
  • 如何构建印度尼西亚电话号码正则表达式

    这些是一些印度尼西亚的电话号码 08xxxxxxxxx 至少包含 11 个字符长度 08xxxxxxxxxxx 始终以 08 开头 我发现这个很有用 Regex regex new Regex 08 0 9 0 9 0 9 0 9 0 9
  • 如何在内存中存储分子?

    我想将分子存储在内存中 这些可以是简单的分子 Methane CH4 C H bond length 108 7 pm H H angle 109 degrees But also more complex molecules like p
  • ListDictionary 类是否有通用替代方案?

    我正在查看一些示例代码 其中他们使用了ListDictionary对象来存储少量数据 大约 5 10 个对象左右 但这个数字可能会随着时间的推移而改变 我使用此类的唯一问题是 与我所做的其他所有事情不同 它不是通用的 这意味着 如果我在这里
  • 如何连接字符串和常量字符?

    我需要将 hello world 放入c中 我怎样才能做到这一点 string a hello const char b world const char C string a hello const char b world a b co

随机推荐

  • 如何从外部分离 gdb 会话?

    我使用如下命令在后台启动 gdb 会话 gdb batch command tmp my automated breakpoints gdb p pid of proces gt gt tmp gdb results log The 最后让
  • 如何确定当前文化/区域设置是否使用 am/pm 还是 24 小时时间?

    我需要确定当前的区域性 区域设置是否设置为使用 am pm 时间或 24 小时时间 起初我以为我可以这样做 bool time24Hour Thread CurrentThread CurrentCulture DateTimeFormat
  • 使用 info.plist 存储多目标应用程序的特定于目标的值

    我有一个多目标 iPhone 应用程序 当前包含一个带有常量定义的头文件 这些常量定义在构建时有条件地包含 具体取决于正在构建的目标 但是 我想知道是否最好将此信息包含在构建的 info plist 中 因为这通常包含特定于目标的元 因此逻
  • 从后面的代码调用 javascript

    我有一个 c asp net 3 5 应用程序 我试图在某个事件发生后从代码后面打开一个窗口 我有这个 但它不起作用 并且 firebug 中没有错误 protected override void OnPreRender EventArg
  • 浏览器中跨时区的相同日期时间 - 在预订引擎上

    我正在寻找在任何浏览器中使用同一时间在国际上预订服务的最佳实践 解决方案 我不太明白其中的逻辑 也在这里挖掘 Use case 布鲁塞尔预订的用户假设有一家位于新加坡的理发服务 他一周后将飞往那里 他在浏览器日期时间控件中选择 14 00
  • Android:对Fragment使用Activity的默认动画

    我需要在片段替换中使用活动默认动画 但是使用android R anim我找不到它 我怎样才能找到它的名字 是否可以默认使用它 或者我必须手动创建动画才能使用它 预先非常感谢 在搜索了这个确切的问题后 我在 Google 论坛上找到了这个资
  • Liferay 7 无法设置全局会话属性

    我正在尝试设置会话属性 HTTP 或 Portlet 会话 以便我可以全局访问它 通过门户 但是 在获取 Session 属性时 它返回的是 null 而不是实际值 设置会话属性 Component immediate true prope
  • 调用 PowerMockito.mockStatic 时出现 AbstractMethodError

    我正在尝试使用 PowerMockito 来模拟静态调用 然而 当我尝试这样做时 PowerMockito mockStatic调用抛出一个 AbstractMethodError java lang AbstractMethodError
  • Android WebView:检查网页是否消耗了触摸

    如果我触摸我的 WebView 有没有办法检查我的 WebView 内容 网页 是否实际使用 消耗了触摸 在这种情况下我想要做什么 如果用户触摸屏幕一侧的边距 如果下面没有按钮 href等 当网页内容没有使用 消耗触摸时 我自己使用它 在
  • 登录前添加监听

    我一直在使用 symfony 3 创建 Web 应用程序 我已使用 EWZRecaptchaBundle 将 Recaptcha 添加到我的登录表单中 如何在登录前添加侦听器以验证 Recaptcha 的验证
  • Raku:捕获标记的效果在“更高处”消失

    以下 Raku 脚本 usr bin env raku use v6 d grammar MyGrammar rule TOP
  • 使用 Python 的二维数组(图像)中的像素邻居

    我有一个像这样的 numpy 数组 x np array 1 2 3 4 5 6 7 8 9 我需要创建一个函数 我们将其称为 邻居 并带有以下输入参数 x 一个 numpy 二维数组 i j 二维数组中元素的索引 d 邻域半径 作为输出
  • 将 Pandas DataFrame 转换为对象列表

    我想将 Pandas DataFrame 转换为对象列表 这是我的课 class Reading def init self self HourOfDay int 0 self Percentage float 0 我读过 to dict
  • 启动多个线程,只等待一个线程完成即可获取结果

    假设我有这个功能double someRandomFunction int n 它接受一个整数并返回双精度值 但它是随机的 因为它会尝试随机的东西来得出解决方案 因此即使您使用相同的参数运行该函数 有时也可能需要 10 秒才能完成 其他则需
  • 当选项更改时,单选按钮“Checked=checked”不会更改

    我创建了一个基本的 2 单选按钮表单 如下面的示例所示 观察浏览器渲染 我们看到第 1 项被选中 我们检查第 1 项和第 2 项 当我单击第 2 项时 我希望删除第 1 项的 check checked 我希望第 2 项收到属性 selec
  • 我通过访问内存位置来更改 const 变量的值。为什么不起作用?

    我试图理解const在c 中 我写了以下代码片段 const int x 5 int ptr ptr int x cout lt lt address of x lt lt x lt
  • 如何使用jsoup限制下载大小?

    我正在尝试使用 JSoup 限制下载页面 链接的大小 如下所示 Scala 代码 val document Jsoup connect theURL get 我只想获取给定页面的前几 KB 并停止尝试下载超出该范围的内容 如果有一个非常大的
  • 只有一个元素的双边框

    我试图获得一个双边框 下划线 标题 第一个是全宽 第二个是文本宽度 边界应该重叠 有一个简单的解决方案 其中两个元素嵌套如下 h1 span Title span h1 and css h1 border bottom 1px solid
  • Django WSGI 应用程序 SegFault

    所以我通过 apache 2 22 在 mod wsgi 中的 django wsgi 应用程序遇到段错误 这是 wsgi 应用程序 import os import sys sys path append home com zpencer
  • Moose 与 Perl 类似 C++ 的 OOP 用法

    我一直在玩Moose 找到了感觉 我想要一个纯虚函数的例子 就像 C 中的那样 但用 Moose 的说法 特别是以 C 的方式 我知道即使 Moose 强加了比普通 Perl 更严格的模型 仍然有不止一种方法可以完成我所要求的任务 通过方法