#...... b) Match ..... @a = qw(1 2 3); @b = ( 1, 2, [ 3, 4 ] );
say "b) \@a is contained in \@b" if ( @a ~~ @b );
Was ich nicht verstehe ist, dass b) matched, a) aber nicht.
Wer kann mir das erklären?
Last edited: 2014-05-14 12:34:55 +0200 (CEST)
+2 replies
Raubtier
2014-05-14 12:54
User since 2012-05-04
1075
Artikel BenutzerIn
Naja, erstmal muss man wissen, ob man ~~ überhaupt verwenden will, da der Operator so viel kontextabhängiges tut...
Der Kommentar "is contained in" ist schonmal irreführend.
array1~~array2 überprüft für jedes Paar, ob array1[i] ~~ array2[i] gilt. Und 1~~1 und 2~~2 und 3~~[3,4] ist alles true, da skalar~~array im Prinzip ein grep ist.
Guck dir mal in perlop den Abschnitt "Smartmatch Operator" an.