Thread array an subroutine übergeben (3 answers)
Opened by kale_1990 at 2007-01-15 16:48

renee
 2007-01-15 16:58
#73242 #73242
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Entweder musst Du mit Prototypen arbeiten, oder - was ich eher empfehlen würde - mit Referenzen arbeiten.

Was in diesem Fall geht ist auch einfach die Rehenfolge der Übergabeparameter vertauschen. Perl kann nicht wissen, wo Dein Array anfängt und wo es aufhört. Deswegen landet im Moment alles in @ids (Du solltest übrigens mit Wiki:[tt]use strict[/tt] arbeiten und den Gültigkeitsbereich von Variablen einschränken).

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
my @ids = (32,36,38,34,35);
my @bg = trans_id_array(\@ids,$varpar1,$varpar2);
sub psh_trans_id_array
{
my @ids = @{$_[0]}; # ersten Parameter dereferenzieren
my $var1 = $_[1];
my $var2 = $_[2];
my $idss = "";
foreach (@ids) {
$idss .= ",".$_;
}
}


Den Teil my $idss = ""; for... schreibst Du besser so:
Code: (dl )
my $idss = join(",",@ids)



Mehr zum lesen:

*) perlsub
*) perlreftut
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/

View full thread array an subroutine übergeben