Ashutosh Jog wrote:
>
> Hello all,
Hello,
> I am a complete newbie and am trying to do a couple of things but was
> not able to. Any assitance is welcome.
>
> If I have a dir structure G:\abc\efg\qrs.txt:
>
> 1) How can I list the entire structure under G:\abc along with all the dirs.
> under G:\abc\ right upto the file qrs.txt ?
Use the File::Find module to tranverse an entire directory tree.
> In this structure the dir name abc will not change and neither will the
> name of the file qrs.txt. But there will be a different dir name for efg
> for eg: there will be dirs as under
> G:\abc\efg\qrs.txt
> G:\abc\hij\qrs.txt .......etc. etc.
>
> How can I have these listed in a file (line by line) using perl?
>
> 2) Then I would want to take the individual dir names under G:\abc and
> put them in a separate txt file.
> For eg: From the above eg., I would like to have the dir's 'efg' and
> 'hij' listed in a diff txt file, line by line (i.e just these dir name)
>
> Is there a way to do so in perl? I could do the first part in shell
> script but wasn't sure how it would work under perl. Thank you in
> advance for your patience.
#!/usr/bin/perl
use warnings;
use strict;
my $dir = 'G:/abc';
my $file = 'qrs.txt';
my $out1 = 'list.txt';
my $out2 = 'dirs.txt';
open LIST1, '>', $out1 or die "Cannot open $out1: $!";
open LIST2, '>', $out2 or die "Cannot open $out2: $!";
opendir DIR, $dir or die "Cannot opendir $dir: $!";
while ( defined( my $ent = readdir DIR ) ) {
if ( -e "$dir/$ent/$file" ) {
print LIST1 "$dir/$ent/$file\n";
}
if ( -d "$dir/$ent" ) {
print LIST2 "$ent\n";
}
}
__END__
John
--
use Perl;
program
fulfillment
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]