如何在 Perl 中使用宏?

2023-12-08

如何在 Perl 中使用宏,就像在 C 中一样?

Example:

#define value 100 
print value; 

我想让输出为 100。


如果您只想定义常量(如您的示例)而不是完整的宏,有几种 perl 方法可以做到这一点。

有些人喜欢:

use constant value => 100;
print value;

请注意,“值”是一个子例程,而不是“变量”。这意味着您无法将其插入字符串中,因此您必须这样做。print "The value is ".value."\n";.

The "最佳实践“ 人群喜欢:

use Readonly;
Readonly my $value => 100;
print $value;

然而,与constant不同,Readonly不是核心perl发行版的一部分,因此需要从CPAN安装。

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

如何在 Perl 中使用宏? 的相关文章

  • 如何在 Perl 字符串中手动插入字符串转义符?

    在perl中假设我有一个像这样的字符串 hello tworld n 而我想要的是 hello world 也就是说 hello 然后是文字制表符 然后是 world 然后是文字换行符 或者等价地 hello tworld n 注意双引号
  • 无法在 Perl 中找到 DBI.pm 模块

    我使用的是 CentOS 并且已经安装了 Perl 5 20 并且默认情况下存在 Perl 5 10 我正在使用 Perl 5 20 版本来执行 Perl 代码 我尝试使用 DBI 模块并收到此错误 root localhost perl
  • 为什么 Perl 的 LWP 给我的编码与原始网站不同?

    可以说我有这个代码 use strict use LWP qw get my content get http www msn co il print STDERR content 错误日志显示类似 xd7 x9c xd7 x94 xd7
  • 何时计划 (SELECT) 查询?

    在 PostgreSQL 中 什么时候计划 SELECT 查询 Is it 在报表准备时 或者 在处理 SELECT 开始时 或者 别的东西 我问的原因是 Stackoverflow 上有一个问题 相同的查询 两种不同的方式 性能截然不同
  • perl - 子进程向父进程发送信号

    我编写了以下代码来测试孩子和父母之间的信号传递 理想情况下 当子进程向父进程发出 SIGINT 时 父进程应该在新的迭代中返回并等待用户输入 我在 perl 5 8 中观察到了这一点 但在 perl 5 6 1 我被要求使用 中 父级实际上
  • 在 Perl 中,“$a”和“$b”在 sort() 函数之外还有什么特殊用途吗?

    我问了一个关于 Perl 中 a 和 b 使用的问题sort 前几天的功能 Perl 的 sort 函数中的 a 和 b 到底是什么 https stackoverflow com questions 26127617 what exact
  • Perl 中函数调用和 goto &NAME 有什么区别?

    我正在读 Perl 这很有趣 但读书时从这里转到 https www tutorialspoint com perl perl goto statement htm在 Perl 中我有一个疑问 我知道 goto 语句有三种类型 转到标签 转
  • 从函数返回哈希值的最佳 Perl 实践是什么?

    我正在考虑将哈希引用传递给函数或从函数返回数据的最佳实践 一方面 仅将输入值传递给函数并仅返回输出变量似乎很直观 然而 在 Perl 中传递哈希值只能通过引用来完成 因此有点混乱 而且似乎更有可能犯错误 另一种方法是在输入变量中传递引用 但
  • 打印出匿名子程序的代码

    我目前正在一个非常复杂的 Perl 架构中工作 我想创建一些调试工具 由于许多行为涉及匿名子例程 因此我想分析其中一些行为 而我所要做的就是对子例程的引用 简而言之 有没有办法打印子例程引用的代码 因为 Perl 被解释 它可能仍然可用 核
  • 在哪里可以找到将现有 CPAN 模块转换为使用 Dist::Zilla 的简明指南?

    我曾多次阅读过相关文档和一些博客文章地区 齐拉 http search cpan org dist Dist Zilla 我从来没有对自己的理解充满信心 在回答另一个问题时 Ether 提出了转换的可能性地穴 SSLeay http sea
  • 如何只读取文件的第一行

    我已经用谷歌搜索了一段时间 但我找不到只读取文件第一行的函数 我需要读取文本文件的第一行并从中提取日期 Perl 新手 open my file lt filename txt my firstLine lt file gt close f
  • Perl 三元条件运算符内部赋值问题

    我的程序中的这段 Perl 代码给出了错误的结果 condition a 2 a 3 print a 无论价值如何 condition就是 输出总是3 为什么呢 Perl 中对此进行了解释文档 http perldoc perl org p
  • Web 开发中的 Perl [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 如何使用 Perl 和正则表达式将 SQL 文档转换为 ColdFusion 脚本?

    我需要将 SQL 语句文档转换为 ColdFusion 文档 我对正则表达式只有一点经验 而且我是 Perl 超级新手 我昨天刚刚自学了它的基础知识 所以我可以完成这项任务 我正在尝试用 Perl 编写的脚本匹配和替换模式 该脚本保存为 B
  • 在 Perl 中,如何制作数组的深层复制? [复制]

    这个问题在这里已经有答案了 可能的重复 在 Perl 中制作数据结构深层复制的最佳方法是什么 https stackoverflow com questions 388187 whats the best way to make a dee
  • 我可以在 VIM 或 Perl 中替换单个正则表达式中的多个项目吗?

    假设我有字符串 The Quick Brown Fox Jumps Over the Lazy Dog 我可以用一个正则表达式将其更改为 The Slow Brown Fox Jumps Over the Energy Dog 吗 目前 我
  • 在 Perl 中实现 CLI 工具的最佳实践是什么?

    我正在使用 Perl 实现 CLI 工具 我们可以遵循哪些最佳实践 作为前言 我花了 3 年时间为一家大型金融公司设计并实现了一个相当复杂的 Perl 命令行工具集 以下想法基本上是我们团队设计指南的一部分 用户界面 命令行选项 允许尽可能
  • 使用 sed 替换复杂模式

    我想使用 sed 命令替换模式 要删除的图案如下所示 带有一个空格 var 0xaae8 x6A x6F x69 x6E x72 x65 x76 x65 x72 x73 x65 x73 x70 x6C x69 x74 x3E x74 x70
  • Log4Perl 将多个程序的日志记录捆绑到一个日志中

    CPAN 上是否有任何 Logger 它允许我将多个程序的日志捆绑到一个文件中 并在两个程序同时运行并并行调用 log4Perl 时同步并行日志记录 背景是我使用一个自定义附加程序来写入电子邮件 我想将所有电子邮件捆绑在一个文件中作为备份
  • 如何在 Perl 中将多个哈希值合并为一个哈希值?

    在 Perl 中 我如何得到这个 VAR1 999 gt 998 gt 908 906 0 998 907 VAR1 999 gt 991 gt 913 920 918 998 916 919 917 915 912 914 VAR1 99

随机推荐