Как я могу обменять две переменные Perl без использования третьего?

Я хочу обменять два значения переменных без использования третьей переменной в Perl, e. г:.

my $first = 10;
my $second = 20;

Просьба предложить мне, как мы можем сделать это на Perl простым способом.

Ответ 1

Самый лучший способ, который предоставляет нам, - это в одной строке, вы можете менять значения:

 ($first, $second) = ($second, $first);

Ответ 3

Перспективные методы, уже перечисленные в Perl, являются лучшими, но здесь используется метод XOR, который работает на многих языках, включая Perl:

use strict;

my $x = 4;
my $y = 8;

print "X: $x  Y: $y\n";

$x ^= $y;
$y ^= $x;
$x ^= $y;

print "X: $x  Y: $y\n";

X: 4  Y: 8
X: 8  Y: 4

Ответ 4

Вы можете сделать это относительно легко, используя простые математики.

Мы знаем:

First = 10
Second = 20

Если мы скажем First = First + Second

Теперь мы имеем следующее:

First = 30
Second = 20

Теперь вы можете сказать Second = First - Second (Second = 30 - 20)

Теперь имеем:

First = 30
Second = 10

Теперь минус Second from First, и вы получите First = 20 и Second = 10.

Ответ 5

$first = $first + $second;
$second = $first - $second;
$first = $first-$second;

Это приведет к замене двух целых переменных Лучшее решение может быть

$first = $first xor $second;
$second = $first xor $second;
$first = $first xor $second;

Ответ 6

вы можете использовать эту логику

firstValue = firstValue + secondValue;

secondValue = firstValue - secondValue;

firstValue = firstValue - secondValue;

Ответ 7

#!/usr/bin/perl

$a=5;
$b=6;

print "\n The value of a and b before swap is --> $a,$b \n";

$a=$a+$b;
$b=$a-$b;
$a=$a-$b;

print "\n The value of a and b after swap is as follows:";
print "\n The value of a is ---->$a \n";
print "\n The value of b is----->$b \n";