$@
Match exactly zero tokens (V8 only) LHS operator
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, 4th 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.