Version 0.006002
[p5sagit/Devel-Declare.git] / t / early1_x.pm
CommitLineData
12b60feb 1package t::early1_x;
2use strict;
3use warnings;
4sub import {
5 require Devel::Declare;
6 my $caller = caller();
7 Devel::Declare->setup_for($caller, {
8 class => {
9 const => sub {
10 my ($kw, $off) = @_;
11 $off += Devel::Declare::toke_move_past_token($off);
12 $off += Devel::Declare::toke_skipspace($off);
13 die unless substr(Devel::Declare::get_linestr(), $off, 1) eq '{';
14 my $l = Devel::Declare::get_linestr();
15 substr $l, $off + 1, 0, 'pass q[injected];' . (';' x 1000);
16 Devel::Declare::set_linestr($l);
17 my $class = sub (&) { $_[0]->() };
18 no strict 'refs';
19 *{ "${caller}::$kw" } = $class;
20 },
21 },
22 });
23}
24
251;