#! /usr/bin/env perl use strict; use warnings; sub interrupt { warn "CTRL+C detected.\n"; die; } sub ask_user { my $msg = shift; print $msg; chomp( my $input = || '' ); return $input; } $SIG{INT} = \&interrupt; open my $logh, '>', "/tmp/log.txt" or die "$!"; print $logh "Opened Logfile.\n"; while ( my $input = ask_user("Enter something: ") ) { print $logh $input, "\n"; } close $logh or die "$!"; END { return unless fileno $logh; print $logh "Close Logfile.\n"; close $logh or warn $!; }