Я пытаюсь изучить Devel::Declare
, чтобы попытаться повторно реализовать что-то вроде PDL::NiceSlice
без исходных фильтров. Я куда-то шел, когда заметил, что из моего сценария удаляется следующая строка. Чтобы проиллюстрировать это, я сделал этот минимальный пример, в котором можно использовать ключевое слово comment
для удаления всей строки из кода, позволяя компилировать, даже если в этой строке много пустых слов.
#Comment.pm
package Comment;
use strict;
use warnings;
use Devel::Declare ();
sub import {
my $class = shift;
my $caller = caller;
Devel::Declare->setup_for(
$caller,
{ comment => { const => \&parser } }
);
no strict 'refs';
*{$caller.'::comment'} = sub {};
}
sub parser {
#my $linestr = Devel::Declare::get_linestr;
#print $linestr;
Devel::Declare::set_linestr("");
}
1
а также
#!/usr/bin/env perl
#test.pl
use strict;
use warnings;
use Comment;
comment stuff;
print "Print 1\n";
print "Print 2\n";
дает только
Print 2
что мне не хватает?
P.S. У меня, вероятно, возникнет еще несколько вопросов по D::D
, если я разберусь с этим, так что заранее спасибо!