14 my $err1 = "Unimplemented at $0 line ";
17 $err = $err1 . ( __LINE__ + 1 ) . $err2;
19 is $@, $err, "Execution of ellipsis statement reported 'Unimplemented' code";
22 note("RT #122661: Semicolon before ellipsis statement disambiguates to indicate block rather than hash reference");
25 $err = $err1 . ( __LINE__ + 1 ) . $err2;
26 eval { @transformed = map {; ... } @input; };
27 is $@, $err, "Disambiguation case 1";
30 $err = $err1 . ( __LINE__ + 1 ) . $err2;
31 eval { @transformed = map {;...} @input; };
32 is $@, $err, "Disambiguation case 2";
35 $err = $err1 . ( __LINE__ + 1 ) . $err2;
36 eval { @transformed = map {; ...} @input; };
37 is $@, $err, "Disambiguation case 3";
40 $err = $err1 . ( __LINE__ + 1 ) . $err2;
41 eval { @transformed = map {;... } @input; };
42 is $@, $err, "Disambiguation case 4";
46 # Regression tests, making sure ... is still parsable as an operator.
48 my @lines = split /\n/ => <<'--';
50 # Check simple range operator.
51 my @arr = 'A' ... 'D';
53 # Range operator with print.
56 # Without quotes, 'D' could be a file handle.
59 # Another possible interaction with a file handle.
63 foreach my $line (@lines) {
64 next if $line =~ /^\s*#/ || $line !~ /\S/;
65 my $mess = qq {Parsing '...' in "$line" as a range operator};
67 {local *STDOUT; no strict "subs"; $line;}