Thread aktuelles Verzeichnis (43 answers)
Opened by J-jayz-Z at 2005-05-15 02:55

J-jayz-Z
 2005-05-15 17:28
#54895 #54895
User since
2005-04-13
625 Artikel
BenutzerIn
[Homepage] [default_avatar]
Ich habe hier ein Verständnissproblem und finde den Fehler nicht...
Ich will eine Liste des aktuellen Verzeichnisses ausgeben lassen, mit größe und Dateiname.
Dies allerdings nach der größe sortiert.
Hier ist meine Idee, ich bekomme aber
Code: (dl )
1
2
3
4
5
6
Argument "." isn't numeric in sort at ./filesize2.pl line 36.
Argument ".." isn't numeric in sort at ./filesize2.pl line 36.
Argument "filesize2.pl" isn't numeric in sort at ./filesize2.pl line 36.
Argument "make_index.pl" isn't numeric in sort at ./filesize2.pl line 36.
Argument "lol.htm" isn't numeric in sort at ./filesize2.pl line 36.
Argument "omake.cpp" isn't numeric in sort at ./filesize2.pl line 36.
und so weiter...
Kann mir da vielleicht jemand helfen?
Mein Code:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
#!/usr/bin/perl
use strict;
use warnings;

use Cwd;

my $dir = getcwd;
my %sizeindex;
my %fileindex;
my @sort;
my $o;
my @size;

opendir(FILE, "$dir");
my @file = readdir(FILE);
closedir(FILE);


foreach(@file)
{
my $size = (-s, "$_");
push @size, $size;

$sizeindex{$_} = $size;
}

foreach(@size)
{
my $i = 0;
$fileindex{$i}=$sizeindex{$file[$i]};
$i++;
}

my $main = @file;

@sort = sort { $a <=> $b } @size;

format STDOUT_TOP =
Dateiname Dateigroesse
====================================
.

for($o = 0; $o == $main; $o = $o + 1)
{
if (-f "$_")
{
my $i = 0;
if ($size[$i] < 1024)
{
$size[$i] .= " bytes";
} elsif ( $size[$i] > 1024 && $size[$i] < 1048576)
{
$size[$i] = sprintf("%.2f", $size[$i] / 1024);
$size[$i] .= " kb";
} elsif ( $size[$i] > 1048576 && $size[$i] < 1099511627776)
{
$size[$i] = sprintf("%.2f", $size[$i] / 1048576);
$size[$i] .= " mb";
} else
{
$size[$i] = sprintf("%.2f", $size[$i] / 1099511627776);
$size[$i] .= " gb";
}
format STDOUT =
@<<<<<<<<<<<<<<<<< @>>>>>>>>>>>>>>
$fileindex{$i}, $size[$i]
.
write;
$i++;
}
}

thx schonmal!
perl -Mstrict -Mwarnings -e 'package blub; sub new { bless {} } sub bar {my $self=shift; $self->{bla}="5065726c2d436f6d6d756e697479"; return $self->{bla};} my $foo=blub->new();print "Hallo ";print pack("H*",$foo->bar()); print "\n"'

http://perl-tutor.de

View full thread aktuelles Verzeichnis