Chad Kellerman wrote:
> 
> Hi everyone,

Hello,

>    I am having a small problem with opendir:
> 
> #!/usr/bin/perl -w
> 
> # getting disk usage for users
> # not quite as good as du(1) but alittle faster...maybe
> # written by [EMAIL PROTECTED]
> # Aug 17, 2002
> 
> use strict;
> use diagnostics;
> $|++;
> 
> my ( $name, $uid, $dir );
> while ( ( $name, undef, $uid, undef, undef, undef, undef, $dir ) =
> getpwent()) {
>    next if ( $name =~ /users/  || $name =~ /www/ || $name =~ /sysop/);
>    if ( $uid > 500 ) {
>       if (-l $dir ) { $dir = "/home2/$name"};
>       my $maildir = "$dir/\*\-mail/";
>       print "$name has $dir and $maildir\n";
>       opendir( MAILDIR, "$maildir" ) || die "what the: $!";
>       my @mail = grep -T, readdir MAILDIR;
>       closedir MAILDIR;
>       print "@mail\n";
>    }
> }
> 
> This code dies on the opendir statemenet saying that /home/$name/*-mail
> is not there.  But it is there.  What else can I use for the "*" so that
> it will read the mail direcotry for a user?

I tried this on my system:

$ mkdir \*-mail
$ touch \*-mail/one
$ touch \*-mail/two
$ touch \*-mail/three
$ ls -lR
.:
total 1
drwxr-xr-x    2 john     users          94 Nov 20 12:03 *-mail

./*-mail:
total 0
-rw-r--r--    1 john     users           0 Nov 20 12:03 one
-rw-r--r--    1 john     users           0 Nov 20 12:03 three
-rw-r--r--    1 john     users           0 Nov 20 12:03 two
$ perl -le'$d = "*-mail";opendir D,$d or die"$!";while($f=readdir
D){print"F:$f"}'
F:.
F:..
F:one
F:two
F:three


What is the _exact_ error message that you are getting?



John
-- 
use Perl;
program
fulfillment

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

Reply via email to