Perl Language Reference Manualby Larry Wall and others Paperback (6"x9"), 724 pages ISBN 9781906966027 RRP £29.95 ($39.95) Sales of this book support The Perl Foundation! Get a printed copy>>> |

## 7.8 Multiplicative Operators

Binary "*" multiplies two numbers.

Binary "/" divides two numbers.

Binary "%" is the modulo operator, which computes the division
remainder of its first argument with respect to its second argument.
Given integer
operands `$a`

and `$b`

: If `$b`

is positive, then `$a % $b`

is
`$a`

minus the largest multiple of `$b`

less than or equal to
`$a`

. If `$b`

is negative, then `$a % $b`

is `$a`

minus the
smallest multiple of `$b`

that is not less than `$a`

(i.e. the
result will be less than or equal to zero). If the operands
`$a`

and `$b`

are floating point values and the absolute value of
`$b`

(that is `abs($b)`

) is less than `(UV_MAX + 1)`

, only
the integer portion of `$a`

and `$b`

will be used in the operation
(Note: here `UV_MAX`

means the maximum of the unsigned integer type).
If the absolute value of the right operand (`abs($b)`

) is greater than
or equal to `(UV_MAX + 1)`

, "%" computes the floating-point remainder
`$r`

in the equation `($r = $a - $i*$b)`

where `$i`

is a certain
integer that makes `$r`

have the same sign as the right operand
`$b`

(**not** as the left operand `$a`

like C function `fmod()`

)
and the absolute value less than that of `$b`

.
Note that when `use integer`

is in scope, "%" gives you direct access
to the modulo operator as implemented by your C compiler. This
operator is not as well defined for negative operands, but it will
execute faster.

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.

print '-' x 80; # print row of dashes print "\t" x ($tab/8), ' ' x ($tab%8); # tab over @ones = (1) x 80; # a list of 80 1's @ones = (5) x @ones; # set all elements to 5

ISBN 9781906966027 | Perl Language Reference Manual | See the print edition |