mrras25 has asked for the wisdom of the Perl Monks concerning the following question:
This is probably simple but I am not able to wrap my head around this one -
I have a subroutine that checks to see if a status is 0 yet - what I would like is loop through until the status returns 0. How would I do this?
# Code to loop sub routine checkCopyStat ????? #sub routine sub checkCopyStat { my $clTyp = shift; $status = 0; open OUT, ">/usr/local/emc/bin/temp.txt" or die "unable to open fil +e: $! \n"; my $name = "LUN 120 DB"; # for test purposes my $navicmd = `naviseccli -address $spa -user $nviusr -password $nv +ipwd -scope global clone -listclone -Name "$name" -cloneid $copies{$c +lTyp} -Clonestate -PercentSynced`; print OUT "$navicmd"; #put contents into a temporary file close(OUT); open FILE, "< /usr/local/emc/bin/temp.txt" or die "unable to open f +ile: $! \n"; my %hash; while (<FILE>) { my ($col1, $col2) = (split /:/, $_)[0,1]; chomp($col1,$col2); if(!$col1) {next;} if(!$col2) {next;} $hash{$col1} = $col2 } foreach my $key(%hash) { if($hash{'CloneState'} =~ /Consistent/) { $status = 0; }elsif($hash{'CloneState'} =~ /Synchronizing/) { $status = $hash{'PercentSynced'}; } else { print "State Unknown for clone\n"; $status = -1; } } close(FILE); unlink('/usr/local/emc/bin/temp.txt'); return($status); }
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Sub Routine calls
by gmargo (Hermit) on Nov 18, 2009 at 05:03 UTC | |
by mrras25 (Acolyte) on Nov 18, 2009 at 05:54 UTC | |
by Anonymous Monk on Nov 18, 2009 at 06:00 UTC | |
by cdarke (Prior) on Nov 18, 2009 at 10:29 UTC | |
|
Re: Sub Routine calls
by colwellj (Monk) on Nov 18, 2009 at 04:59 UTC | |
|
Re: Sub Routine calls
by Jenda (Abbot) on Nov 18, 2009 at 12:31 UTC |