Как я могу использовать макросы в Perl? - PullRequest
4 голосов
/ 26 марта 2010

Как использовать макросы в Perl, как в C?

Пример:

#define value 100 
print value; 

Я хочу получить вывод как 100.

Ответы [ 4 ]

30 голосов
/ 26 марта 2010

Если вы просто хотите определить константы (как в вашем примере), а не полные макросы, есть несколько способов сделать это на perl.

Некоторые люди любят:

use constant value => 100;
print value;

Обратите внимание, что «значение» - это подпрограмма, а не «переменная». Это означает, что вы не можете интерполировать его в строках, поэтому вы должны это сделать. print "The value is ".value."\n";.

Толпа " Best Practices " вроде:

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

Однако, в отличие от константы, Readonly не является частью основного дистрибутива perl и поэтому должен быть установлен из CPAN.

14 голосов
/ 26 марта 2010

Perl - это не C. Вам было бы намного лучше узнать соответствующие идиомы Perl (например, уже упомянутые use constant value => 100), чем пытаться перетащить идиомы C в Perl.

10 голосов
/ 26 марта 2010

Для констант обычно используется подпрограмма констант, которая будет встроена компилятором:

use constant value => 100;

или

sub value () {100}
0 голосов
/ 26 марта 2010

Попробуйте следующее:

macro.pl

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

И запустите этот код, используя ключ -P.

Пример: perl -P macro.pl

И использовать модуль Filter :: cpp также.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...