Я пытаюсь изучить 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
что мне не хватает?
PS У меня, вероятно, возникнут еще несколько вопросов по D :: D
, если я разберусь с этим, так что заранее спасибо!