Как я могу прокомментировать только часть строки в Perl?

Как прокомментировать часть одной строки в Perl, например, следующую строку:

 if($clevel==0){#never happends}

Я хотел бы прокомментировать эту последнюю закрывающую скобку, не переходя к новой строке.

Ответы

Ответ 1

Значок # запускает комментарий, который заканчивается концом строки.

Ответ 2

Если это действительно так важно, используйте фильтрацию источника.

# C_Style_Comments.pm
package C_Style_Comments;
use Filter::Simple;
FILTER {   s{/\* .* \*/}{}gmx    };
1;

$ perl -MC_Style_Comments -e 'print /* 5, No wait, I mean */ 3'
3

Ответ 3

Любая причина, по которой вы не можете написать:

if($clevel==0){#never happends}

as:

if($clevel==0){} #never happens

Есть несколько трюков, которые вы можете сделать, чтобы скрыть сообщения, например:

0 and 'some comment'

Но вы просто сделаете это более запутанным, если кто-то еще должен поддерживать ваш код в будущем.

Работа в рамках ограничений языка, а не попытка заставить его действовать как какой-то язык, с которым вы более знакомы, часто заставляет вас изучать новые вещи. Я лично ненавижу работать в IDL, но некоторые из трюков для работы с низкой производительностью петли привели меня к оптимизации кода, который я написал с других языков.

Ответ 4

A #, а затем разрыв строки. Вы можете относиться к ним как к скобке, потому что мало что в Perl теряет смысл из разных строк.

my $ans = 2 + rand( 5 ) + $pixels / FUDGE_FACTOR;

Для

my $ans = # 2 + 
    rand( 5 ) + $pixels # / FUDGE_FACTOR
    ;

Или из:

if ( dont_know_how_this_breaks() && defined $attribute ) { 
   #...
}

To:

if ( # dont_know_how_this_breaks() && 
     defined $attribute ) { 
   #...
}

Ответ 5

Используйте строку как встроенный комментарий:

perl -lne '$a++; q#some explanation#;print;'

Встроенный комментирование необходим для комментирования Perl-кода, встроенного в Make файлы (и Bash script и Vim Scripts), как в этом vimscript-вызове perl.. Файл тезауруса VIM

Ответ 6

Часть комментария строки или умножения строки в perl:

=comment
...
...
...

=cut