use warnings; use strict; use Data::Dump; my $cnt; sub get_value { $cnt++ < 10 ? 'initializing' : 'ok' } my $status; #while( !( ($status = get_value()) eq 'initializing' ) ) { while (1) { dd $status = get_value(); last if $status eq 'initializing'; print "X" } print "Y\n";