Kai Diefenbach: pass-by-reference in Perl ???

Beitrag lesen

Hallo Bernhard,

Gibts irgendsowas ähnliches wie pass by reference auch in Perl? Ich
würd gern mehrere Variablen mit einem Funktionsaufruf ändern. Also

In Perl werden Variable standardmaessig by reference uebergeben.
Erst mit einer lokalen Kopie von @_ aenderst Du dies in pass by value.
Wenn Du aber @_ direkt bearbeitest, aenderst Du auch die uebergebenen Werte:

#!perl -w
use strict;

my $x = 1;
my $y = 2;

change($x,$y);

print "$x, $y";   # gibt 3, 4 aus

sub change {
  
   $_[0] = 3;
   $_[1] = 4;
    
}

oder Du gibst einfach mehrere geaenderte Werte zurueck:

#!perl -w
use strict;

my $x = 1;
my $y = 2;

($x, $y) = change($x,$y);

print "$x, $y";

sub change {  
  
   my ($a, $b) = @_;
   $a = 3;
   $b = 4;
   return ($a, $b);

}

perldoc perlsub
Oder Du benutzt Referenzen, s. Calocybe.

Liebe Grüsse
Bernhard aka RAMBO!!!!

Gruss
   Kai