#!/usr/bin/perl use common::sense; use Glib qw/TRUE FALSE/; my $file_pipe = "pipes/$$".'_pipe'; system('mkfifo',$file_pipe)==0 or die $!; my $p_read; open $p_read,'<',$file_pipe or die $!; $SIG{USR1} = \&on_usr1; my $loop = Glib::MainLoop->new( 'default', FALSE ); $loop->run; sub on_usr1 { my $sig = shift; say "somebody told me $sig"; }