14

Perl で 3 番目の変数を使用せずに 2 つの変数の値を交換したい、例えば:

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

これを Perl で簡単に行う方法を教えてください。

4

7 に答える 7

24

私たちだけを提供する最良の方法は、値を交換できる1行で次のようになります。

 ($first, $second) = ($second, $first);
于 2013-09-04T05:47:13.227 に答える
23

あなたは書ける:

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

( Learning Perl , Third Editionの §3.4 "List Assignment"を参照してください。)

于 2013-09-04T05:44:26.140 に答える
-1

既にリストされている Perl 固有の方法が最適ですが、Perl を含む多くの言語で機能する XOR を使用した手法を次に示します。

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
于 2013-09-05T03:56:40.607 に答える
-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

于 2013-09-04T05:46:35.383 に答える
-5
$first = $first + $second;
$second = $first - $second;
$first = $first-$second;

これは2つの整数変数を交換しますより良い解決策は

$first = $first xor $second;
$second = $first xor $second;
$first = $first xor $second;
于 2013-09-04T05:45:19.973 に答える
-6
#!/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";
于 2014-07-25T18:14:50.823 に答える
-6

このロジックを使用できます

firstValue = firstValue + secondValue;

secondValue = firstValue - secondValue;

firstValue = firstValue - secondValue;
于 2013-09-04T05:49:25.290 に答える