in reply to Print inside SIGNALS

perl -e 'alarm 3;$SIG{ALRM}=sub{print "Timeout reached\n"}; sleep 10'

works for me on my ArchLinux system.

Note you didn't have a newline on your print, maybe you just missed the output because it wasn't on a separate line?