laziness, impatience, and hubris PerlMonks

### Re^2: Secret Perl Operators: The Highlander List Asserter

by shmem (Chancellor)
 on Jul 31, 2006 at 19:23 UTC ( #564843=note: print w/replies, xml ) Need Help??

Since binary "x" works like stated in perlop
Binary "x" is the repetition operator. In scalar context or if the left operand is not enclosed in parentheses, it returns a string consisting of the left operand repeated the number of times specified by the right operand. In list context, if the left operand is enclosed in parentheses or is a list formed by "qw/STRING/", it repeats the list. If the right operand is zero or negative, it returns an empty string or an empty list, depending on the context.
this operator resolves basically to !!. I'd call that one:

The Highlander Operator.

It resolves any gazillion operations on the rhs to just 1 (One).

()x!! then is the list asserter. Of course, a list cannot be asserted better than through the Highlander Himself - so it's full name is "The Highlander List Asserter" :-)

--shmem

```_(\$_=" "x(1<<5)."?\n".qˇ/)Oo.  G°\        /
/\_¯/(q    /
----------------------------  \__(m.====ˇ.(_("always off the crowd"))."ˇ
");sub _{s./.(\$e="'Itrs `mnsgdq Gdbj O`qkdq")=~y/"-y/#-z/;\$e.e && print}```
• Comment on Re^2: Secret Perl Operators: The Highlander List Asserter

Replies are listed 'Best First'.
Re^3: Secret Perl Operators: The Highlander's List Asserter
by ikegami (Pope) on Jul 31, 2006 at 19:38 UTC

"Boolean Cast Operator" would be a less cryptic name than "Highlander Operator" for !!.

It's not even correct to say it returns 1. For example, print "[", !!1, "]" prints []. For a true argument, !! returns the dualvar 1/''.

Update: I got it backwards. True = dualvar (PVNV) 1/'1', False = dualvar (PVNV) 0/''.

Hmm? Is that platform dependent?
```lt-gm [gm] 21:43 ~ > perl -le 'print "[", !!1, "]"'
[1]

Linux, perl 5.8.8. I choose "Higlander Operator" following the unstated naming conventions other secret operators follow ;-)

--shmem

```_(\$_=" "x(1<<5)."?\n".qˇ/)Oo.  G°\        /
/\_¯/(q    /
----------------------------  \__(m.====ˇ.(_("always off the crowd"))."ˇ
");sub _{s./.(\$e="'Itrs `mnsgdq Gdbj O`qkdq")=~y/"-y/#-z/;\$e.e && print}```

Create A New User
Node Status?
node history
Node Type: note [id://564843]
help
Chatterbox?
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others contemplating the Monastery: (6)
As of 2017-08-19 22:50 GMT
Sections?
Information?
Find Nodes?
Leftovers?
Voting Booth?
Who is your favorite scientist and why?

Results (312 votes). Check out past polls.

Notices?