#  MakeDir.pl
#  Example 3.4:
#  ----------------------------------------
#  From "Win32 Perl Scripting: Administrators Handbook" by Dave Roth
#  Published by New Riders Publishing.
#  ISBN # 1-57870-215-1
#
#  This script creates a new directory.  Any required intermediary
#  directories are also created.
#
print "From the book 'Win32 Perl Scripting: The Administrator's Handbook' by Dave Roth\n\n";

                               
$Dir = shift @ARGV || die "Syntax: $0 <Dir>";
$Result = 1;
( $Root, $Path ) = ( $Dir =~ /^(\w:\\?|\\\\.+?\\.+?\\|\\)?(.*)$/ );
print "Creating directory '$Dir'...\n";

if( -d $Dir )
{
    print "Directory already exists.\n";
    exit;
}

@DirList = split( /\\/, $Path );
$Path = $Root;

while( $Result && scalar @DirList )
{
    $Path .= ( shift @DirList ) . "\\";

    next if( -d $Path );
    $Result = mkdir( $Path, 0777 );
}

print ( ( $Result )? "Success" : "Failure (Error: $!)" ), "\n";
