Beitrag von hempelr (1976 Beiträge) am Freitag, 28.März.2003, 06:50.
Frage zu Datentypen - nicht ganz klar, was passiert
Hallo,
was passiert eigentlich in Perl, wenn man die Datentypen in nem Script unterschiedlich behandelt?
Also ich meine den Unterschied bei Vergleichsoperationen in Abfragen, mal mittels "eq" und mal mittesl "==".
Gibt es überhaupt eine Typumwandlung oder ist das Perl prinzipiell egal und macht nur die Vergleichs- und meinetwegen Rechenoperationen entsprechend der übergebenen "typfreien" Werte?
Es wäre ja zu denken, daß eine Typumwandlung bei untersch. Abfragen im gleichen Script eine Laufzeitverlängerung zu Folge hätte.....
Danke für Hinweis
Ruben
Beitrag von Christoph Bergmann (8110 Beiträge) am Mittwoch, 2.April.2003, 18:34.
Re: Frage zu Datentypen - nicht ganz klar, was passiert
Also Perl wandelt automatisch in den zum Operator (das is z.b. +, -, ==, > etc.) passenden Typ. Darum hat Perl ja auch 2 Sätze davon, einmal für Zahlen und einmal für Texte (meiner Meinung nach _nicht_ optimal!). Das Umwandlungsprinzip ist ganz einfach: Zahl -> Text wird genauso übernommen und Text -> Zahl werden alle Zeichen von Beginn an, die einer Zahl entsprechen genommen, der Rest wird abgeschnitten, also z.b. "123.456blabla" -> 123.456
"3.0" == "3ABC" entspricht damit 3 == 3 und ist also wahr...
"3.0" eq "3ABC" entspricht dem was es ist und ist also unwahr...
Da die Typumwandlung so simpel ist kann ich mir beim besten Willen nicht vorstellen damit irgendwo mehr als ein paar Mikrosekunden rauszuschinden... ;-)
Klarer? ,-)
Beitrag von hempelr (1976 Beiträge) am Donnerstag, 3.April.2003, 06:46.
Re: Frage zu Datentypen - nicht ganz klar, was passiert
ja - ich hatte mir nur Gedanken drum gemacht, daß eine Typumwandlung vielleicht Zeit kosten könnte und man dadurch "gezwungen" ist, konsequent Typrein zu arbeiten.
Aber das scheint so, wie es Perl handhabt, kein Prob zu sein. Hoffentlich wird es dann ich späteren Versionen nicht mal ganz anders und man muß dann doch "typrein" arbeiten - da käme einem dann die eigene "Schlamperei" teuer zu stehen...
Ruben