Josimar Nunes de Oliveira <[EMAIL PROTECTED]> wrote:
: 
: Hello Clarkson,
: Thanks for everything you explained.

    You're welcome.
 
: The 'System Volume Information' is a restricted system folder 
: (only SYSTEM can access) in NTFS.

    I don't know much about win 2k. That file may
be inaccessible to the user running the script.
Sorry, but I don't know how to access it.

 
: For a moment I was in trouble in how to handle the @file 
: resulted from the
: File::Find.
: Itīs a basic problem that I need to understand how to access 
: array and hash.
: I must improve my skill toward this subject.
: The final porpose isnīt important by now, only learning a 
: litle more Perl:
: I tried this and worked fine:
: 
: for (my $i=0; $i<=$#files; $i++){
:  print "\n", $files[$i][0], ' => ', $files[$i][1];
: }

    In perl you can usually step through a single
array *without* counting through its indexes. It
may look funny at first, but this is easier to
read.

foreach my $file ( @files ) {
    print join( ' => ', @$file ), "\n";
}

    Each time through the loop $file contains a
reference to another array. 'perldsc' has a lot
info on data structures like this.


: How to sort the @file by filename (first column of array)?
: How can take every occurrency of array with foreach(@files) 
: or while (@files) like in loop above?

    Sorting this array should be fairly
straight forward.

# ascending first column sort
@files = sort { $a->[0] cmp $b->[0] } @files;

# ascending second column sort
@files = sort { $a->[1] cmp $b->[1] } @files;


# Descending first column sort
@files = reverse sort { $a->[0] cmp $b->[0] } @files;

# Descending second column sort
@files = reverse sort { $a->[1] cmp $b->[1] } @files;


HTH,

Charles K. Clarkson
-- 
Head Bottle Washer,
Clarkson Energy Homes, Inc.
Mobile Home Specialists
254 968-8328


    Or a 1 column sort sub routine where a negative value
will do a reverse (or descending) sort:


sort_files( -1, [EMAIL PROTECTED] );

foreach my $file ( @files ) {
    print join( ' => ', @$file ), "\n";
}

sub sort_files {
    my( $column, $array ) = @_;

    my $descending = $column < 0;
    $column = abs( $column ) - 1;
    die if $column < 0;

    # ascending sort
    @$array =
        sort
            { $a->[ $column ] cmp $b->[ $column ] }
            @$array unless $descending;

    # descending sort
    @$array = reverse
        sort
            { $a->[ $column ] cmp $b->[ $column ] }
            $array;
}






--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to