Thread Array::Utils: Wie Rückgabewert als Liste interpretieren (34 answers)
Opened by mika at 2018-11-18 12:25

haj
 2018-11-18 19:00
#189227 #189227
User since
2015-01-07
527 Artikel
BenutzerIn

user image
Ich habe auch kein Informatikstudium :)

Was man dazu wissen sollte:
  • Arrays und Listen sind in Perl nicht das gleiche
  • Subroutinen liefern keine Arrays, möglicherweise aber Listen (Details in perldoc -f return). Ich musste grade schmunzeln als ich in der aktuellen Beschreibung von Perldoc:perlfunc wantarray gelesen habe: This function should have been named wantlist() instead. Wie wahr.
  • Wenn eine eingebaute Funktion ein Array als Parameter erwartet, dann steht das explizit in der Dokumentation (z.B. perldoc -f splice: splice ARRAY,OFFSET,LENGTH,LIST


Nachgeschlagen (1): Wenn ich in der Synopsis von Array::Utils folgendes lese:
Code (perl): (dl )
1
2
# get items from array @a that are not in array @b
my @minus = array_minus( @a, @b );
...dann denke ich mir schon, dass da ein Prototyp im Einsatz ist, der ein Array braucht, weil's in Perl anders gar nicht geht. Details dazu in Perldoc:perlsub.

Nachgeschlagen (2): Der Code funktioniert nur für Elemente, die als Strings verglichen werden können. Also Vorsicht bei Objekten mit String-Repräsentationen: da können unterschiedliche Objekte den gleichen String erzeugen. Die Funktion unique aus dem gleichen Modul macht übrigens Referenzen und Objekte einfach platt (das gleiche gilt übrigens für die ansonsten elegante Lösung von rosti - aber Du wirst schon wissen, ob sowas in Deinen Daten vorkommt).

Nachgeschlagen (3): Diese Einschränkungen stehen in einem seit sieben Jahren offenen Bug-Report zum Modul.

Caveat Emptor!

View full thread Array::Utils: Wie Rückgabewert als Liste interpretieren