The Ellipsis Statement
Beginning with v5.12, Perl accepts a bare ellipsis, “...”, as a stub—that is, a placeholder for
code that you haven’t implemented yet. Do not confuse this ... statement with the binary flip-flop
... operator. Perl doesn’t usually
confuse them because Perl can tell when it is expecting statements or
operators most of the time—but see below.
When Perl parses an ellipsis statement, it accepts it silently.
Later, though, if you try to execute it, Perl loudly throws an
exception with the text Unimplemented:
sub unimplemented { ... }
eval { unimplemented() };
if ($@ =~ /^Unimplemented/) {
say "Caught an Unimplemented exception!";
}You may use the elliptical statement only as a complete statement (though a statement modifier is allowed). These examples are all legal examples of the ellipsis statement:
{ ... }
sub foo { ... }
...;
eval { ... };
... unless defined &dispatcher;
sub somemeth {
my $self = shift;
...;
}
$x = do {
my $n;
...;
say "Hurrah!";
$n;
};However, ... cannot stand in
for an expression that is part of a larger statement, since ... is also the three-dot version of the flip-flop operator (see Range Operators in Chapter 3).
Hence, the following are all considered syntax errors:
print ...; # WRONG
open(my $fh, ">", "/dev/passwd") or ...; # WRONG
if ($condition && ... ) { say "Howdy" }; # WRONGThere are times when Perl can’t distinguish an expression from a statement. For example, a bare block and an anonymous hash composer look the same unless there’s something ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access