in reply to using 'use' conditionally

The error output of the eval block is caught in the $@ variable, that's why you don't see any error message. Leave out the 'die', and try this:
if ($@){ die "Tk not installed. Can't run GUI. Error returned: $@\n"; }