#!/usr/bin/perl use strict; use warnings; eval { local $SIG{ALRM} = sub { die "alarm\n" }; alarm 2; system("perl -e '1 while 1'") == 0 or die "Cannot do infinite loop: $!"; alarm 0; }; die $@ unless $@ eq "alarm\n"; # the following lines let me do a 'ps awux|grep perl' # while this is running print 'Hanging ...'; ;