I am trying to print the contents of a directory recursively. But I see in the output that the files are printed-out 2 times. Is there anything I am missing out in the recursive function.#!/usr/bin/perl use strict; print_dir ( "." ); sub print_dir { my $dir_name = shift; #print "-->$dir_name\n"; opendir ( my $dir_h , "$dir_name") or die "Unale to open dir :$dir_ +name: $!\n"; #print "Inside Function\n"; while ( my $file = readdir($dir_h) ) { #print "File :$file:\n"; next if ( "$dir_name/$file" =~ /\/\.$/ or "$dir_name/$file" =~ /\ +/\.\.$/ ); #print "$dir_name\n"; #<>; if ( -d "$dir_name/$file" ) { #print "Match\n"; print_dir ( "$dir_name/$file" ); } print "$dir_name/$file\n"; } #return $dir_name; }
In reply to Traversing directories recursively by jesuashok
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |