Hand auf herz, wann hast du das letzte mal eine Funktion dynamisch redefiniert? Und in welcher Sprache?
In Javascript ist dies öfters nötig, allerdings ist dort das Verhalten anders
function get(val, el) {
return function() { alert(val + ':' + el) };
}
function get2(val, el) {
function f() { alert(val + ':' + el) };
return f;
}
window.onload = function() {
var all = document.getElementsByTagName('*');
for(var i = 0; i < all.length; i++) {
var el = all[i];
el.onclick = get(i, el);
// el.onclick = get2(i, el);
}
}
Funktionert beides, in Perl nur das Erste, aber beim zweiten kommt dafür eine Warnung
Struppi.