sleep 60; my $status; while(!(($status = get_value()) eq 'initializing')) { sleep 10; } #### use strict; use warnings; my $count = 0; my $status; while (($status = gv() eq 'initializing')) { print 'stuck in loop' . "\n"; } sub gv { $count ++; return 'initializing' if $count < 5; return 'ok'; }