The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#!/usr/bin/perl

use strict;

die "usage: $0 directory ...\n" unless @ARGV;

foreach my $dir (@ARGV)
{
  my (@subdirs) = split /[\/\\]/, $dir;

  my $dir_to_create = '';

  foreach my $subdir (@subdirs)
  {
    if ($dir_to_create eq '')
    {
      $dir_to_create = '/' if $subdir eq '';
    }
    else
    {
      $dir_to_create .= '/' if $dir_to_create !~ /\/$/;
    }

    $dir_to_create .= $subdir;

    next if -d $dir_to_create;

#print "making directory: $dir_to_create\n";

    # Don't die on file exists, in case make -j was used and another parallel
    # invocation created the directory before we could get to it.
    unless (mkdir $dir_to_create)
    {
      die "Could not create directory $dir_to_create: $!\n"
        if $! ne 'File exists';
    }
  }
}