Thread string found where operator expected
(21 answers)
Opened by bianca at 2016-06-06 00:09 2016-06-08T07:20:24 Muffi Es mag Haarspalterei sein, aber das ist so nicht ganz korrekt ;-) Wenn Du innerhalb der Subroutine die Argumente an eigene Variablen übergibst und diese dann bearbeitest, stimmt das. Wenn Du aber innerhalb der Subroutine direkt auf die Elemente von @_ zugreifst, änderst Du sehr wohl die originale Variable; denn @_ enthält "Aliase" auf die eigentlichen Argumente/Variablen. Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 #! /usr/bin/perl use strict; use warnings; use 5.010; sub foo { $_[0] =~ s/Echo/Otto/; } my $text = "Hallo Echo"; foo($text); # schau nach, was nun in $text steckt say $text; Nachtrag: Werden fixe Strings übergeben, gibt es Fehlermeldungen, wenn man dann versucht, eine Änderung am Alias vorzunehmen: Code: (dl
)
1 foo( "Hallo Welt" ); Nachtrag2: Wer die Doku dazu sucht: perlsub, 3. Absatz in der Description Last edited: 2016-06-08 13:18:24 +0200 (CEST) meine Beiträge: I.d.R. alle Angaben ohne Gewähr und auf Linux abgestimmt!
Die Sprache heisst Perl, nicht PERL. - Bitte Crossposts als solche kenntlich machen! |