Thread Weitergabe eines Objectes in eine externe Funktion (PM) (11 answers)
Opened by jan99 at 2014-04-25 06:22

Raubtier
 2014-04-25 09:30
#174999 #174999
User since
2012-05-04
1075 Artikel
BenutzerIn
[default_avatar]
2014-04-25T04:22:02 jan99
sub waymerger
Code (perl): (dl )
1
2
{
  my @data = shift;


Was soll @data = shift deiner Meinung nach tun?

Beachte, dass in Perl folgende Aufrufe aus Sicht der Funktion testfunktion gleich sind:

Code (perl): (dl )
1
2
3
4
5
my @ab = ("a", "b");
my $c = "c";
my @abc = ("a", "b", "c");
testfunktion(@ab, $c);
testfunktion(@abc);


Quote

Die Meldung dabei ist:

Quote
Can't locate object method "doublewrite" via package "OSM::Tree::Way" at C:/Perl
/lib/OSM/Tree/WayMerger.pm line 126, <> line 1.



Das zweite Element in @data, das du in der Zeile my @superway_id_result = osmtree_waymerger(@data,$log); übergibst, ist offenbar ein OSM::Tree::Way und kein Log::File-Objekt.

Lösungsmöglichkeiten:
- übergib das @data als Referenz (siehe auch Perldoc:perlsub, Abschnitt "Pass by Reference")
- übergib den Logger als ersten Parameter, das Array als letzten
Last edited: 2014-04-25 09:33:35 +0200 (CEST)

View full thread Weitergabe eines Objectes in eine externe Funktion (PM)