2 use Test::More qw(no_plan);
10 our ($Declarator, $Offset);
13 $Offset += Devel::Declare::toke_move_past_token($Offset);
17 $Offset += Devel::Declare::toke_skipspace($Offset);
22 if (my $len = Devel::Declare::toke_scan_word($Offset, 1)) {
23 my $linestr = Devel::Declare::get_linestr();
24 my $name = substr($linestr, $Offset, $len);
25 substr($linestr, $Offset, $len) = '';
26 Devel::Declare::set_linestr($linestr);
35 my $linestr = Devel::Declare::get_linestr();
36 if (substr($linestr, $Offset, 1) eq '(') {
37 my $length = Devel::Declare::toke_scan_str($Offset);
38 my $proto = Devel::Declare::get_lex_stuff();
39 Devel::Declare::clear_lex_stuff();
40 $linestr = Devel::Declare::get_linestr();
41 substr($linestr, $Offset, $length) = '';
42 Devel::Declare::set_linestr($linestr);
49 my $pack = Devel::Declare::get_curstash_name;
50 Devel::Declare::shadow_sub("${pack}::${Declarator}", $_[0]);
54 my $linestr = Devel::Declare::get_linestr;
55 substr($linestr, $Offset, 0) = $_[0];
56 Devel::Declare::set_linestr($linestr);
60 my $linestr = Devel::Declare::get_linestr;
61 if (substr($linestr, $Offset, length($_[0])) eq $_[0]) {
62 substr($linestr, $Offset, length($_[0])) = '';
63 Devel::Declare::set_linestr($linestr);
70 local ($Declarator, $Offset) = @_;
72 my $name = strip_name;
73 my $str = "happy ".(defined $name ? "foom: ${name}" : "anonymous foom");
74 if (defined(my $proto = strip_proto)) {
88 Devel::Declare->setup_for(
91 const => \&FoomHandlers::const,
96 ::is(foom, "happy anonymous foom", "foom");
98 ::is(foom KABOOM, "happy foom: KABOOM", "foom KABOOM");
100 ::is(foom (zoom), "happy anonymous foom; zoom", "foom (zoom)");
102 ::is(foom KABOOM (zoom), "happy foom: KABOOM; zoom", "foom KABOOM (zoom)");