%hash = ( $key => $value );
login( $username => $password );
-=head2 Yada Yada Operators
-X<...> X<... operator> X<!!!> X<!!! operator> X<???> X<??? operator>
-X<yada yada operator>
+=head2 Yada Yada Operator
+X<...> X<... operator> X<yada yada operator>
-The yada yada operators are placeholders for code. They parse without error,
-but when executed either throw an exception or a warning.
-
-The C<...> operator takes no arguments. When executed, it throws an exception
+The yada yada operator (noted C<...>) is a placeholder for code.
+It parses without error, but when executed it throws an exception
with the text C<Unimplemented>:
sub foo { ... }
Unimplemented at <file> line <line number>.
-The C<!!!> operator is similar, but it takes one argument, a string to use as
-the text of the exception:
-
- sub bar { !!! "Don't call me, Ishmael!" }
- bar();
-
- Don't call me, Ishmael! at <file> line <line number>.
-
-The C<???> operator also takes one argument, but it emits a warning instead of
-throwing an exception:
-
- sub baz { ??? "Who are you? What do you want?" }
- baz();
- say "Why are you here?";
-
- Who are you? What do you want? at <file> line <line number>.
- Why are you here?
+It takes no argument.
=head2 List Operators (Rightward)
X<operator, list, rightward> X<list operator>
use strict;
-plan 5;
+plan 1;
my $err = "Unimplemented at $0 line " . ( __LINE__ + 2 ) . ".\n";
eval { ... };
is $@, $err;
-
-$err = "foo at $0 line " . ( __LINE__ + 2 ) . ".\n";
-
-eval { !!! "foo" };
-
-is $@, $err;
-
-$err = "Died at $0 line " . ( __LINE__ + 2 ) . ".\n";
-
-eval { !!! };
-
-is $@, $err;
-
-my $warning;
-
-local $SIG{__WARN__} = sub { $warning = shift };
-
-$err = "bar at $0 line " . ( __LINE__ + 2 ) . ".\n";
-
-eval { ??? "bar" };
-
-is $warning, $err;
-
-$err = "Warning: something's wrong at $0 line " . ( __LINE__ + 2 ) . ".\n";
-
-eval { ??? };
-
-is $warning, $err;
pl_yylval.ival = 0;
OPERATOR(ASSIGNOP);
case '!':
- if (PL_expect == XSTATE && s[1] == '!' && s[2] == '!') {
- s += 3;
- LOP(OP_DIE,XTERM);
- }
s++;
{
const char tmp = *s++;
AOPERATOR(DORDOR);
}
case '?': /* may either be conditional or pattern */
- if (PL_expect == XSTATE && s[1] == '?' && s[2] == '?') {
- s += 3;
- LOP(OP_WARN,XTERM);
- }
if (PL_expect == XOPERATOR) {
char tmp = *s++;
if(tmp == '?') {