Hi!
kurz und knapp: Ich mache eine eingabe sie kommt in eine subroutine wird umgewandelt und wieder ausgegeben.
Zur verständlichkeit:
#!/usr/bin/perl
$a = <STDIN>; #Eingabe ist "Hallo"
chomp $a;
print $a; #logischerweise immernoch "Hallo"
umwandeln($a) #Hier wird $a in die sub gegeben
sub umwandeln
{
my $wandel = shift;
$wandel = "Bye";
}
print $a; # $a sollte jetzt "Bye" sein.
Warum klappt das nicht? Wenn ich die sub aber so mache:
sub umwandeln
{
$_[0] = "Bye"
}
Geht es.
Ich bin wirklich kein freund von variablen namens $_ und würde echt gerne wissen warum das nicht geht?
my $wandel = shift;
ist doch das ganz selbe wie
$_[0] oder versteh ich da etwas falsch?
Kann es sein das es nicht geht weil ich nur ein parameter übergebe ich aber eine liste damit aufrufe?
Bitte um hilfe.