in reply to Create new directories

Which part of the answers you got in File creation script do you have problems with?

Replies are listed 'Best First'.
Re^2: Create new directories
by ibaboom (Initiate) on May 29, 2008 at 14:18 UTC

    Here is the code I have so far, I am looping through and getting the directory and making the directories. How do I get the group and owner information from the lines below the directory.

    open(FILE,"@ARGV[0"); while (defined ($line = <FILE>)) { chomp $line; if $line =~ /mydir/) { $directory = substr($line, 8); } mkdir $directory, "\n"; }

      Maybe a good start would be to show the relevant part of the code you already have? Also, it often helps us to help you better if you show exactly where you have the problems.

      Most likely you will then look at File::Path and/or mkdir.

      One obvious problem -- put the mkdir inside the if statement:
      if ($line =~ /mydir/) { $directory = ... mkdir $directory, 0775; }
      You only want to call mkdir if the line matches.

      Also, passing "\n" to mkdir doesn't make any sense here. The second argument to mkdir is a permission mode mask. See the comments on perldoc -f mkdir for more discussion on how this parameter works.

      Finally, you should get accustom to using the three parameter version of open:

      open(FILE, '<', $ARGV[0]);
      This is much safer.

        and checking an open() for success is even safer:

        open FILE, '<', $ARGV[0] or die "$ARGV[0]: $!\n";

        In cases, that it can't open the file, it won't try to read from an unopened filehandle FILE, but end the script with an error message.