Thread Arrayübergabe (11 answers)
Opened by Pasta at 2011-11-12 16:43

pq
 2011-11-13 18:42
#154159 #154159
User since
2003-08-04
12209 Artikel
Admin1
[Homepage]
user image
um noch einen anderen aspekt des skripts anzusprechen:
ich weiss nicht, inwieweit du dich mit for-schleifen und nützlichen perl-funktionen auskennst, jedenfalls gibt es viel einfachere und gleichzeitig lesbarere methoden, um ein array auszugeben.
du möchtest alle elemente eines arrays mit einem '*' dazwischen ausgeben.
ein erster ansatz wäre statt der umständlichen while-schleife eine for-schleife:
Code (perl): (dl )
1
2
3
4
for my $i (0 .. $#array -1) {
    print "$array[$i]*";
}
print $array[-1];


in perl gibt es jedoch auch noch eine praktische funktion namens join():
Code (perl): (dl )
print join '*', @array;

da erkennt man auf den ersten blick, was gemacht wird: verbinde alle elemente von array mit einem * und gib das ergebnis aus.

edit: und der vollständigkeit halber, hier noch eine weitere möglichkeit:
Code (perl): (dl )
1
2
local $" = '*';
print "@array";

die spezialvariable $" (der defaultwert ist ") wird bei "@array" zwischen die elemente eingesetzt.
Last edited: 2011-11-13 19:25:03 +0100 (CET)
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem

View full thread Arrayübergabe