Amichai Teumim wrote:
I have this script, If you run it you can see how it nicely idents the
directories. I don't understand everything in this script.

[ SNIPPED an example of *BAD* code ]


Your example would be better written as:

#!/usr/bin/perl
use warnings;
use strict;

my $startdir = '/lib';
my $level    = 0;

sub list_dirs {
    # remove first argument from @_
    my $dir = shift;
    # remove second argument from @_
    my $lev = shift;

    opendir TOP, $dir or die "Cannot open '$dir' $!";
    # get all directory names except '.' and '..'
    my @files = grep -d "$dir/$_" && !/\A\.\.?\z/, readdir TOP;
    closedir TOP;

    foreach my $file ( @files ) {
        print ' ' x $lev, "$file\n";
        list_dirs( "$dir/$file", $lev + 1 );
        }
    }


list_dirs( $startdir, $level );


__END__



John
--
Perl isn't a toolbox, but a small machine shop where you
can special-order certain sorts of tools at low cost and
in short order.                            -- Larry Wall

--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
http://learn.perl.org/


Reply via email to