A signal is a super abbreviated message - its literally a "one bit message" on/off. A common use for this particular signal is to force a daemon to re-read its config file. The entry for $SIG{'HUP'} starts off as undefined. The signal handler when installed, is essentially the address of a subroutine that receives exactly ZERO parameters. Of course that sub could call a number of subs which also take no parameters.
What that subroutine does is your business. Installing a signal handler is something that the main process code should do. Not something that happens because of the "use" statement of some module. The processing of this signal is a public interface that has application level not just module significance.