Sayed, Irfan (Irfan) wrote:
> Here is my code
>
> # Perl script to change the replica name
>
> use strict;
> use warnings;
>
>
> # my $fname = "/tmp/vob_list1";
> # open FILE,">",$fname or die $!;
> # my $fname1 = "/tmp/repl_list1";
> # open FILE1,">",$fname1 or die $!;
>
> my $CT = '/usr/atria/bin/cleartool';
> my $MT = '/usr/atria/bin/multitool';
>
> my @vob_list = `$CT lsvob -s`;
> # print FILE @vob_list;
> foreach my $a (@vob_list)
> {
> my @repl = `$CT lsreplica -s -invob $a`;
> my @repl1 = grep { /cmvobsvr1mum/i } @repl;
> #print FILE1 @repl1;
> }
> print @repl1;
> my @vob_rep = splice(my @repl1, -50);
> print @vob_rep;
>
>
> #close FILE1;
>
> I already declared the @repl1 in foreach loop.
You need to declare @repl1 *outside* of the foreach loop for it to be seen
outside of the foreach loop:
my @repl1;
foreach my $vob ( @vob_list ) {
@repl1 = grep /cmvobsvr1mum/i, `$CT lsreplica -s -invob $vob`;
}
print @repl1;
Or don't use a foreach loop:
my @repl1 = map {
grep /cmvobsvr1mum/i, `$CT lsreplica -s -invob $_`
} @vob_list;
John
--
use Perl;
program
fulfillment
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>