in reply to
problem in mkdir
The problem is that you are trying to create a directory in a directory that does not exists yet. Take a look at this:
$ cat test2.pl
#!/usr/bin/perl -w
my $d1 = "d1";
my $d2 = "d2";
mkdir "/tmp/$d1/$d2" or warn __LINE__ . " mkdir /tmp/$d1/$d2 failed:$!
+\n";
mkdir "/tmp/$d1" or warn __LINE__ . " mkdir /tmp/$d1 failed:$!\n";
mkdir "/tmp/$d1/$d2" or warn __LINE__ . " mkdir /tmp/$d1/$d2 failed:$!
+\n";
$ ./test2.pl
6 mkdir /tmp/d1/d2 failed:No such file or directory
So my first mkdir command fails to make direcotry /tmp/d1/d2 because /tmp/d1 does not exists.