OK, I am almost there!

Current Script (it's named cre3.pl)

#!/usr/local/bin/perl -w

use strict;
use File::Path;
use File::Copy;

my $file;
my $type;
my $currentLocation;
my $newLocation;
my $owner;
my $permissions;
open (MDATA, "meta-data") or die "Cannot open $!\n";
while (<MDATA>) {
        chomp;
        my ( $file, $type, $currentLocation, $newLocation, $owner, 
$permissions ) = split ( /\t/ );
        mkpath ( $newLocation, $owner, $permissions ) unless (-d 
$newLocation );
        chmod ( $permissions, $newLocation );
        chown ( $owner, $newLocation );
        system ( "cvs checkout '$file'" );
        copy ( $file, $newLocation );
        chmod ( $permissions, "newLocation/$file" );
        chmod ( $owner, $newLocation/$file );


}
close MDATA

Error:

mkdir www
Argument "index.html" isn't numeric in division (/) at ./cre3.pl line 23, 
<MDATA> line 1.
Argument "www" isn't numeric in division (/) at ./cre3.pl line 23, <MDATA> 
line 1.
Illegal division by zero at ./cre3.pl line 23, <MDATA> line 1.

What am I doing wrong still? I am so close!

-garrett


>From: Curtis Poe <[EMAIL PROTECTED]>
>Reply-To: [EMAIL PROTECTED]
>To: garrett esperum <[EMAIL PROTECTED]>, [EMAIL PROTECTED]
>CC: [EMAIL PROTECTED]
>Subject: Re: V2 Sandbox Creation Script
>Date: Thu, 10 Jan 2002 16:29:03 -0800 (PST)
>
>--- garrett esperum <[EMAIL PROTECTED]> wrote:
> > Thanks! That helped,
> > This is what my script looks like now:
> >
> > #!/usr/local/bin/perl -w
> >
> > use strict;
> > use File::Path;
> > use File::Copy;
> >
> > my $file;
> > my $type;
> > my $currentLocation;
> > my $newLocation;
> > my $owner;
> > my $permissions;
> > open (MDATA, "meta-data") or die "Cannot open $!\n";
> > while (<MDATA>) {
> >         chomp;
> >         ($file, $type, $currentLocation, $newLocation, $owner, 
>$permissions)
> > = split /\t/;
> >         forech $newLocation
> >                 if ( not -d $newLocation );
> >                 mkpath($newLocation, $owner, $permissions) or die 
>"Couldn't
> > make the target directory: $!\n";
> >
> >
> > }
> > close MDATA
> >
> > And this is the error I get:
> >
> > Can't locate object method "forech" via package "www" (perhaps you 
>forgot to
> > load "www"?) at ./creat
> > ion.pl line 17, <MDATA> line 1.
>
>Aack!  I just read the error message and didn't look at the code.  There 
>are a few other issues
>there.  Here's my guess as to what you were looking for:
>
>     #!/usr/local/bin/perl -w
>     use strict;
>     use File::Path;
>     use File::Copy;
>
>     open (MDATA, "meta-data") or die "Cannot open $!\n";
>     while (<MDATA>) {
>         chomp;
>         my ($newLocation, $owner, $permissions) = (split/\t/)[ 3.. 5];
>         foreach ( $newLocation ) {
>             if ( not -d $newLocation ) {
>                 mkpath($newLocation, $owner, $permissions) or die 
>"Couldn't make the target
>directory: $!\n";
>             }
>         }
>     }
>     close MDATA
>
>I also wonder if you're misunderstand the use of mkpath().  From 'perldoc 
>File::Path':
>
>     File::Path - create or remove directory trees
>
>SYNOPSIS
>         use File::Path;
>
>         mkpath(['/foo/bar/baz', 'blurfl/quux'], 1, 0711);
>         rmtree(['foo/bar/baz', 'blurfl/quux'], 1, 1);
>
>DESCRIPTION
>     The "mkpath" function provides a convenient way to create directories,
>     even if your "mkdir" kernel call won't create more than one level of
>     directory at a time. "mkpath" takes three arguments:
>
>     *   the name of the path to create, or a reference to a list of paths 
>to
>         create,
>
>     *   a boolean value, which if TRUE will cause "mkpath" to print the 
>name
>         of each directory as it is created (defaults to FALSE), and
>
>     *   the numeric mode to use when creating the directories (defaults to
>         0777)
>
>The second argument is merely a boolean and not the owner.
>
>Also, you have File::Copy in your script, but you don't use it.  Is this 
>something you plan to use
>later?  If not, having it in your script may confuse someone (namely, me :)
>
>Cheers,
>Curtis "Ovid" Poe
>
>=====
>"Ovid" on http://www.perlmonks.org/
>Someone asked me how to count to 10 in Perl:
>push@A,$_ for reverse q.e...q.n.;for(@A){$_=unpack(q|c|,$_);@a=split//;
>shift@a;shift@a if $a[$[]eq$[;$_=join q||,@a};print $_,$/for reverse @A
>
>__________________________________________________
>Do You Yahoo!?
>Send FREE video emails in Yahoo! Mail!
>http://promo.yahoo.com/videomail/
>
>--
>To unsubscribe, e-mail: [EMAIL PROTECTED]
>For additional commands, e-mail: [EMAIL PROTECTED]
>




_________________________________________________________________
Join the world’s largest e-mail service with MSN Hotmail. 
http://www.hotmail.com


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

Reply via email to