Thread Subroutine empfängt nur einen Wert. (4 answers)
Opened by roooot at 2008-06-15 23:12

Linuxer
 2008-06-15 23:25
#111051 #111051
User since
2006-01-27
3891 Artikel
HausmeisterIn

user image
Quote
5: values => ('test1','test2'),


Bei komplexen Datastrukturen musst Du mit Referenzen arbeiten; also:

Code (perl): (dl )
1
2
3
4
5
my @sql_output = $mysql->get({
        values  => [ 'test1','test2' ],  # [] anstatt ()
        table   => 'test',
        where   => "`type` = $id",
});



Innerhalb von get() musst Du dann wieder dereferenzieren:

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
sub get {
   my ( $self, $arg_ref ) = @_;
   # ...

   ### get needed parameters:
   my @values      = @{ $arg_ref->{'values'} };     # ARRAY: value1, value2,...
   my $table       = $arg_ref->{'table'};      # string
   my $where       = $arg_ref->{'where'};      # sql-string, opt
   my $sort        = $arg_ref->{'sort'};       # sql-string, opt
   ###

   # ...


Kurzes Fallbeispiel:

Quote
~$ perl
use strict;
use warnings;

sub foo {
my $ref = shift;
my @arr = @{ $ref->{aa} };

print "@arr \n";
}


foo( { aa => [ 1, 2 ], } );


1 2



perldsc
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!

View full thread Subroutine empfängt nur einen Wert.