Thread Smart match erfassen (5 answers)
Opened by LanX- at 2010-01-21 14:15

LanX-
 2010-01-21 14:15
#131041 #131041
User since
2008-07-15
1000 Artikel
BenutzerIn

user image
Hi

ich tu mich schwer mit ~~, scheinbar bin ich nicht smart genug ...und IMHO ist das noch nicht fix ...

auszug aus perlsyn
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
           $a      $b        Type of Match Implied    Matching Code
====== ===== ===================== =============
(overloading trumps everything)

Code[+] Code[+] referential equality $a == $b
Any Code[+] scalar sub truth $b->($a)

Hash Hash hash keys identical [sort keys %$a]~~[sort keys %$b]
Hash Array hash slice existence grep {exists $a->{$_}} @$b
Hash Regex hash key grep grep /$b/, keys %$a
Hash Any hash entry existence exists $a->{$b}

Array Array arrays are identical[*]
Array Regex array grep grep /$b/, @$a
Array Num array contains number grep $_ == $b, @$a
Array Any array contains string grep $_ eq $b, @$a

Any undef undefined !defined $a
Any Regex pattern match $a =~ /$b/
Code() Code() results are equal $a->() eq $b->()
Any Code() simple closure truth $b->() # ignoring $a
Num numish[!] numeric equality $a == $b
Any Str string equality $a eq $b
Any Num numeric equality $a == $b

Any Any string equality $a eq $b


Frage: Wie würdet ihr dass am besten begrifflich auf Deutsch zusammenfassen? Quasi als Merksatz?

z.B.
A ~~ B bedeutet "A umfasst/enthält B"
(sind A, B vom gleichen Typ läufts auf Gleichheit hinaus)

View full thread Smart match erfassen