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>