Я хочу обменять два значения переменных без использования третьей переменной в Perl, e. г:.
my $first = 10;
my $second = 20;
Просьба предложить мне, как мы можем сделать это на Perl простым способом.
Я хочу обменять два значения переменных без использования третьей переменной в Perl, e. г:.
my $first = 10;
my $second = 20;
Просьба предложить мне, как мы можем сделать это на Perl простым способом.
Самый лучший способ, который предоставляет нам, - это в одной строке, вы можете менять значения:
($first, $second) = ($second, $first);
Вы можете написать:
($first, $second) = ($second, $first);
(См. & sect; 3.4 "Назначение списка" в Learning Perl, третье издание.)
Перспективные методы, уже перечисленные в 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
Вы можете сделать это относительно легко, используя простые математики.
Мы знаем:
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
.
$first = $first + $second;
$second = $first - $second;
$first = $first-$second;
Это приведет к замене двух целых переменных Лучшее решение может быть
$first = $first xor $second;
$second = $first xor $second;
$first = $first xor $second;
вы можете использовать эту логику
firstValue = firstValue + secondValue;
secondValue = firstValue - secondValue;
firstValue = firstValue - secondValue;
#!/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";