perl_learner wrote:
Hi,
Hello,
#!/usr/bin/perl
#!/usr/bin/perl -w
my @result=`find ../src -name '*Msgs.msg'`;
#print "MSG direictories are: $result[0]";
foreach my $res (@result) {
print "$res"; #prints the array value of result
}
I have the array value as:
../src/libfile/src/FileRealMsgs.msg
../src/libl/src/RRLRealMsgs.msg
../src/libg/src/SSRealMsgs.msg
../src/libt/src/TTRealMsgs.msg
../src/libl/src/UURealMsgs.msg
../src/libpl/src/VVMsgs.msg
Question:
From avobe output for each line I need to "cd to that directory and do
some task".
Example: from above output, I need to "cd ../src/libfile/src"; "do
some task"; again enter to next direcotry and so on.
Any help is appreciated.
Something like this may work but it is UNTESTED:
#!/usr/bin/perl
use warnings;
use strict;
use Cwd;
use File::Find;
my $current_dir = getcwd;
my $search_dir = '../src';
my %working_dirs;
find sub {
$working_dirs{ $File::Find::dir }++ if /Msgs\.msg\z/;
}, $search_dir;
foreach my $dir ( keys %working_dirs ) {
chdir $dir or die "Cannot chdir to '$dir' $!";
do_some_task();
chdir $current_dir or die "Cannot chdir to '$current_dir' $!";
}
__END__
John
--
Any intelligent fool can make things bigger and
more complex... It takes a touch of genius -
and a lot of courage to move in the opposite
direction. -- Albert Einstein
--
To unsubscribe, e-mail: beginners-unsubscr...@perl.org
For additional commands, e-mail: beginners-h...@perl.org
http://learn.perl.org/