3 # Check that lines from eval are correctly retained by the debugger
17 my @before = grep { /eval/ } keys %::;
19 is (@before, 0, "No evals");
24 for my $sep (' ', "\0") {
26 my $prog = "sub $name {
33 # Is there a more efficient way to write this?
34 my @expect_lines = (undef, map ({"$_\n"} split "\n", $prog), "\n", ';');
36 my @keys = grep {!$seen{$_}} grep { /eval/ } keys %::;
38 is (@keys, 1, "1 new eval");
40 my @got_lines = @{$::{$keys[0]}};
42 is (@got_lines, @expect_lines, "Right number of lines for " . ord $sep);
44 for (0..$#expect_lines) {
45 is ($got_lines[$_], $expect_lines[$_], "Line $_ is correct");
51 is (eval '1 + 1', 2, 'String eval works');
53 my @after = grep { /eval/ } keys %::;
55 is (@after, 0 + keys %seen,
56 "evals that don't define subroutines are correctly cleaned up");