49 ms·
But in those languages, the equivalent to ($x == "foo") will return false (almost) all of the time. The poster here says that this expression is true (almost)
by tobinfricke 12y ago
But in those languages, the equivalent to ($x == "foo") will return false (almost) all of the time. The poster here says that this expression is true (almost) all of the time in Perl. Why?
- kamaal 12y agoBut what is $x? Integer? String? Character? Some_Object? How do you evaluate this, depends on the context. Wasn't that the whole point of a dynamic language anyway?
- CatMtKing 12y agoAfter learning Haskell, I'm not sure what the benefits of dynamic typing are anymore.
- keypusher 12y agoNo, not at all. Type coercion is orthogonal to type safety.
- AlexanderDhoore 12y agoAmen, brother! I call this "weak typing". But some others use weak typing to mean different things (like "unsafe typing") [1]. Javascript, PHP and Perl are weakly typed. Smalltalk, Lisp, Python, Ruby... are strong typed. But all of them are dynamic. [1] http://en.wikipedia.org/wiki/Strong_and_weak_typing#Predictability http://en.wikipedia.org/wiki/Strong_and_weak_typing#Predicta...
- girvo 12y agoI love dynamic languages with strong typing. You get most of the dev time developments, but without the inherent subtle bugs that creep in via automatic type coercion.
- mst 12y agoBecause if you disable warnings, it silently coerces 'foo' to 0. This is why disciplined (i.e. non-tiny-script-y) perl code starts off with use strict; use warnings; just like disciplined javascript starts off with /* use strict */ and disciplined C code enables compiler warnings, and truly disciplined C code makes those fatal, just like in perl you can do use warnings FATAL => 'all'; If you don't do that, then you get the short script/one liner style behaviour where, just like sed, awk or bash, it assumes you know what you're doing. If you don't, then you should be asking the VM to help tell you when those problems exist, same as 'set -x' in bash is incredibly useful if you don't plan to add '|| exit 255;' onto the end of every command.
- mike-cardwell 12y agoI've been writing perl for over ten years. I think I learned to stick "use strict; use warnings;" at the top of my scripts on day number 1. God only knows why so many other Perl programmers never learnt this.