Name
$@
Synopsis
There will be times when you have to match an empty workspace. The
$@
operator, when used in the LHS, does exactly
that. To illustrate, consider the following rule:
R $@ $#error $@ nouser $: "553 User address required"
Here, the idea is to detect an empty address (the LHS), and to reject
the message with an error (the RHS) if such an address is found. This
LHS matches a workspace (an address) that contains zero information
(zero tokens). Here, then, the $@
operator matches
an empty workspace.
The $@
operator was introduced because it is
illegal to literally put nothing on the LHS. The following rule (here
we show tabs with tab) won’t
work:
Rtab$#error $@ nouser $: "553 User address required"
If you try to match an empty workspace such as this, you will get the following error:
configfile: line number: R line: null LHS
Note that the $@
operator matches zero tokens only
when used on the LHS. When used on the RHS $@
has
a totally different meaning. Note, too, that the
$@
operator on the LHS cannot be referenced by a
$
digit
operator on the
RHS.
Get Sendmail, 3rd Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.