如何在Perl中使用宏,就像在C中一样?
示例:
#define value 100
print value;
我希望输出为100。
答案 0 :(得分:30)
如果你只想定义常量(比如你的例子)而不是完整的宏,那么有几种perl方法可以做到这一点。
有些人喜欢:
use constant value => 100;
print value;
请注意,'value'是子程序,而不是'变量'。这意味着你不能在字符串中插入它,所以你必须这样做。 print "The value is ".value."\n";
。
“Best Practices”人群如下:
use Readonly;
Readonly my $value => 100;
print $value;
但是,与常量不同,Readonly不是核心perl发行版的一部分,因此需要从CPAN安装。
答案 1 :(得分:14)
Perl不是C.通过学习相应的Perl习语(例如已经提到的use constant value => 100
)而不是试图将C语言拖入Perl,你会得到更好的服务。
答案 2 :(得分:10)
对于常量,常见的方法是使用一个由编译器内联的常量子例程:
use constant value => 100;
或
sub value () {100}
答案 3 :(得分:-2)
尝试以下方法:
use strict;
use warnings;
#define a 10;
print a;
使用-P开关运行此代码。
实施例:
perl -P macro.pl
并使用模块Filter::cpp。