in reply to recursive sub
you have scope issues
here is a quick example to guide you, notice the use of my
there is quite a bit wrong with this snippet, as i am sure will be pointed out, but this should help you with your scope problems.#!/usr/bin/perl use strict; my $current = '/usr/local'; my $dir_start = '/home'; print "Current is '$current', starting with '$dir_start'\n\n"; recurse_directory( $dir_start ); print "\nDone.\n\n"; sub recurse_directory { ## variables my $current; my @local_list; ## get the dir we are in $current = $_[0]; ## get contents ## no "." or ".." dirs opendir( CURRENTDIR, "$current" ) or die "Can not open $current: $!"; @local_list = grep !/^\.\.?$/, readdir CURRENTDIR; closedir( CURRENTDIR ) or die "Can not close $current: $!"; ## now loop over the contents foreach my $x ( @local_list ) { my $file = $current . '/' . $x; recurse_directory( $file ) if ( $file -d ); print "$file\n"; } }
the in depth differences between global, local, and my variables may be more than you are looking for, but a good place to start is page 189 of the Camel book, 2nd edition( no idea on the page in 3rd edition, sorry )
Will perl for money
JJ Knitis
(901) 756-7693
gt8073a@industrialmusic.com
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Re: recursive sub
by tachyon (Chancellor) on Oct 27, 2001 at 16:05 UTC |