我想在不使用 Perl 中的第三个变量的情况下交换两个变量值,例如:
my $first = 10;
my $second = 20;
请建议我如何以简单的方式在 Perl 中做到这一点。
我想在不使用 Perl 中的第三个变量的情况下交换两个变量值,例如:
my $first = 10;
my $second = 20;
请建议我如何以简单的方式在 Perl 中做到这一点。
仅提供给我们的最好方法是在一行中您可以交换值:
($first, $second) = ($second, $first);
已经列出的特定于 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
现在从 First 减去 Second,得到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;
#!/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";
你可以使用这个逻辑
firstValue = firstValue + secondValue;
secondValue = firstValue - secondValue;
firstValue = firstValue - secondValue;