Das folgende Skript passt auf Slices von zwei Arrays. Zu Beginn sind beide Arrays gleich und ich bekomme vernünftige Ergebnisse. Dann ändere ich eines der Arrays und passe zwei neue Slices an, aber es sagt immer noch, dass die Slices identisch sind. Wenn ich die Slices jedoch in Arrays kopiere, zeigt das Smart-Matching der Arrays, dass sie tatsächlich verschieden sind.
Das Skript:
%Vor%Die Ausgabe:
%Vor%Ich benutze Perl 5.10.1, und zwar sowohl für Array-Slices als auch für Hash-Slices. Warum passiert das?
Sieht so aus, als ob die intelligente Zuordnung im skalaren Kontext mit Slices funktioniert.
Betrachten Sie die folgenden Codestücke:
Ihr Fall:
%Vor%Das ist wahrscheinlich, was Sie brauchen:
%Vor%Zitat von askucins
Ich habe eine kurze Abfrage in den Perl-Dokumenten durchgeführt, die sich auf das unterschiedliche Verhalten dieses Tests gegenüber der Perl-Version beziehen, und ich fand, dass dies in Perl 5.13.5 behoben wurde. Weitere Informationen finden Sie unter "Intelligente Übereinstimmung mit Array-Slices" in perl5135delta :
Zuvor führte der folgende Code zu einer erfolgreichen Übereinstimmung:
%Vor%Dieses seltsame Verhalten wurde behoben. [ perl # 77468 ].
Tags und Links perl smartmatch