www.farid-hajji.net banner

Farid Hajji

Perl: Einführung, Anwendungen, Referenz (2/e) [Support-Site]

Farid Hajji: Perl - Einführung, Anwendungen, Referenz
2., aktualisierte und erweiterte Auflage
Addison-Wesley Longman, ISBN 3-8273-1535-2

Beispielprogramm

ls.pl
#!/usr/local/bin/perl -w
# ls.pl -- Mini-ls(1) mit Dateitestoperatoren.

use strict;
use Cwd;
my $start_dir = cwd;

while (@ARGV) {
    my $fname = shift @ARGV;

    chdir($start_dir);
    &print_file($fname) if not -d $fname;
    &print_dir($fname)  if -d $fname;
}

sub print_dir
{
    my $dir = shift;
    my @dircontents;
    my $file;

    opendir(DIRHANDLE, $dir)
        or die "can't open directory $dir: $!\n";
    @dircontents = readdir(DIRHANDLE);
    closedir(DIRHANDLE);

    print "Directory: $dir\n";
    print "----------\n";
    chdir($dir);   # WICHTIG!
    foreach $file (sort @dircontents) {
        &print_file($file);
    }
}

sub print_file
{
    local $_ = shift;
    my $flags;

    print "\t$_:\t";
    $flags = "";

    $flags .= "-" if -f;
    $flags .= "d" if -d; $flags .= "l" if -l;
    $flags .= "S" if -s; $flags .= "p" if -p;
    $flags .= "b" if -b; $flags .= "c" if -c;

    $flags .= ",";
    $flags .= "r" if -r; $flags .= "w" if -w;
    $flags .= "x" if -x; $flags .= "o" if -o;
    $flags .= "R" if -R; $flags .= "W" if -W;
    $flags .= "X" if -X; $flags .= "O" if -O;

    print "$flags\n";
}
   

[Prev] [Up] [Relevant Chapter] [Next]

[Alte Quelle]


Last modified: $Date: 2006/05/18 12:55:59 $
FH. Search :: Sitemap :: Disclaimer :: Copyright :: Privacy
FreeBSD Logo