Я пытаюсь выучить 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
, если я решу этот вопрос, так что спасибо заранее!