Prefix operators are those that come in front of their operands. Obviously, prefix operators require only one operand. In some cases, the symbol of the operation can be used as an infix operator when it stands between two operands. ! is the Boolean negation operator. say !True;Β Β Β Β # False say !(1 == 2); # True … Continue reading “π Prefix operators ! and not in Perl 6”
Category: Chapter 2. Operators
π Prefix operators ? and so in Perl 6
? is a unary operator casting the context to a Boolean one by calling the Bool method on an object. say ?42; # True The second form, so, is a unary operator with lower precedence. say so 42;Β Β # True say so True; # True say so 0.0;Β # False
π Prefix operator temp in Perl 6
temp creates a temporary variable and restores its value at the end of the scope (like it does the local built-in operator in Perl 5). my $x = ‘x’; { Β Β Β temp $x = ‘y’; Β Β Β say $x; # y } say $x;Β Β Β Β # x Compare it with the following operator, let.
π Prefix operator + in Perl 6
+ is the unary plus operator, which casts its operand to the numerical context. The action is equivalent to the call of the Numeric method. my Str $price = ‘4’ ~ ‘2’; my Int $amount = +$price; say $amount;Β Β Β Β Β Β Β # 42 say $price.Numeric; # 42 We will see one of the important use cases of … Continue reading “π Prefix operator + in Perl 6”
π Prefix operator +^ in Perl 6
+^ is a bitwise negation operator with twoβs complement. my $x = 10; my $y = +^$x; say $y; # -11 (but not -10) Compare this operator with the following one.
π Method postfix operator .+ in Perl 6
.+method makes an attempt to call all the methods with the given name on an object. This may be used, for example, when an instance is a part of the hierarchy of objects and its parent also has a method with the same name. More on the classes and class hierarchy in Chapter 4. class … Continue reading “π Method postfix operator .+ in Perl 6”
π Numeric operators ?|, ?&, and ?^ in Perl 6
?|, ?&, and ?^ cast the operands to the Boolean type (thus the ? in the operator name) and do the logical operations of OR, AND, and XOR.
π Prefix operator – in Perl 6
– is a unary minus, which changes the sign of its operand. Because this operator silently calls the Numeric method, it can also cast the context, as it does the unary plus operator. my Str $price = ‘4’ ~ ‘2’; say -$price; # -42
π Prefix operator ++ in Perl 6
++ is a prefix operator of increment. First, an increment is done, and then a new value is returned. my $x = 41; say ++$x; # 42 The increment operation is not limited to working only with numbers. It can also handle strings. my $a = ‘a’; say ++$a; # b A practical example is … Continue reading “π Prefix operator ++ in Perl 6”
π Prefix operator ^ in Perl 6
^ is a range-creating operator or the so-called upto operator. It creates a range (which is an object of the Range type) from 0 up to the given value (not including it). .print for ^5; # 01234 This code is equivalent to the following, where both ends of the range are explicitly specified: .print for … Continue reading “π Prefix operator ^ in Perl 6”
π Postfix operator ++ in Perl 6
Postfix operators are unary operators placed after their single operand. ++ is a postfix increment. The change of the value happens after the current value is used in the expression. my $x = 42; say $x++; # 42 say $x; Β Β # 43
π Method postfix operator . in Perl 6
There are a few syntactical elements in Perl 6, which start with a dot. These operators might look like a postfix operator, but they all are the forms of the calling a method on an object. Unlike Perl 5, the dot operator does not do any string concatenation. .method calls a method on a variable. … Continue reading “π Method postfix operator . in Perl 6”
π Numeric operator % in Perl 6
% is the modulo operator returning the remainder of the integer division. The operands are cast to integers first if necessary.
π String comparison operators lt, gt, le, and ge in Perl 6
lt, gt, le, and ge are the operators for comparing strings: less, more, less or equal, and more or equal. The operands are converted to the string values if necessary.
π Prefix operator ~ in Perl 6
~ casts an object to a string. Note that we are now talking about the prefix or a unary operator. If the tilde is used as an infix (see later in this chapter about what infixes are), it works as a string concatenating operator, but it still deals with strings. my Str $a = ~42; … Continue reading “π Prefix operator ~ in Perl 6”
π Prefix operator -β- in Perl 6
-β- is a prefix form of decrement. It works exactly like the ++ prefix but, of course, makes the operand smaller (whether it be a string or a number). my $x = 42; say –$x; # 41
π Prefix operator ?^ in Perl 6
?^ is a logical negation operator. Please note that this is not a bitwise negation. First, the argument is converted to a Boolean value, and then the result is negated. my $x = 10; my $y = ?^$x; say $y;Β Β Β Β Β Β # False say $y.WHAT;Β # (Bool)
π Prefix operator | in Perl 6
| flattens the compound objects into a list. For example, this operator should be used when you pass a list to a subroutine, which expects a list of scalars: sub sum($a, $b) { Β Β Β $a + $b }Β my @data = (10, 20); say sum(|@data); # 30 Without the | operator, the compiler will report … Continue reading “π Prefix operator | in Perl 6”
π Prefix operator let in Perl 6
let is a prefix operator, which is similar to temp, but works correctly with exceptions. The previous value of the variable will be restored if the scope was left because of the exception. my $var = ‘a’; try { Β Β Β let $var = ‘b’; Β Β Β die; } say $var; # a With a die, this … Continue reading “π Prefix operator let in Perl 6”
π Postfix operator -β- in Perl 6
-β- is a postfix decrement. Both postfix and prefix operators magically know how to deal with numbers in filenames. my $filename = ‘file01.txt’; for 1..10 { Β Β Β say $filename++; } This example prints the list of the filenames with incrementing numbers: file01.txt, file02.txt, … file10.txt.