如何在Perl中使用宏?

时间:2010-03-26 04:44:21

标签: perl

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

示例:

#define value 100 
print value; 

我希望输出为100。

4 个答案:

答案 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)

尝试以下方法:

macro.pl

    use strict;
    use warnings;
    #define a 10;
    print a;

使用-P开关运行此代码。

实施例: perl -P macro.pl

并使用模块Filter::cpp