Thread Liste von Objekten sortieren: nach der Eigenschaft Datum
(17 answers)
Opened by mordur at 2005-01-21 12:26
Im Gegensatz zu dem, was Relais erzaehlt hat ;) , ist Perl gar nicht so tolerant bei Vergleichen. Es ist aber so, dass Perl versucht, im numerischen Kontext so viel wie moeglich aus einem String als Zahl zu nehmen (sprich: alles bis zum ersten Nicht-Ziffernzeichen) und diese Zahl dann benutzt. Ein String wie "2005-01-01" ergibt im numerischen Kontext also 2005:
Code: (dl
)
1 > perl -Mwarnings -Mstrict -le 'my $x = "2005-01-21"; print($x+1);' Man beachte die 2006 in der Ausgabe, hinter der Warnung. Wenn man also <=> statt cmp benutzt, werden bei deinen Daten nur die Jahre sortiert, innerhalb eines Jahres ist die Reihenfolge zufaellig (wie sie sich im Sortierablauf ergibt): Code: (dl
)
1 > perl -Mwarnings -Mstrict -le 'my $x = "2005-01-21"; my $y = "2005-01-22"; print($x <=> $y);' Wie die Ausgabe 0 zeigt, sind fuer Perl beide Werte als Zahl gleich gross. |