The biggest problems I've had have been with new releases of Perl/Tk breaking old code. For instance, here's a patch I had to make because Tk804.025 broke my app:
2915c2924,2926
< sub{$self->clicked_on_assignment($self->{ASS_KEYS}->[$ass_
+lb->curselection()])}
---
> # sub{$self->clicked_on_assignment($self->{ASS_KEYS}->[$as
+s_lb->curselection()])}
> # ... used to work, but no longer does
> sub{$self->clicked_on_assignment($self->{ASS_KEYS}->[$name
+_to_key{$ass_lb->get($ass_lb->curselection())}])}
Of course, it's always possible that I was depending on behavior that was actually not supposed to be documented and reliable behavior. I'd have to go back and look at the docs I was using (the O'Reilly Mastering Perl/Tk book) and see.