in reply to problem in mkdir
I can see a few things that seem odd:
my(@folder_name,$temp1,$temp2); ... @folder_name=<ONE>; ... push(my @folder_name,<TWO>); ... $temp1 = pop(@folder_name); $temp2 = pop(@folder_name);
If you check your web server logs, or if you check your script with "perl -c scriptname.pl" you will see a warning"my" variable @a masks earlier declaration in same scope
The second push declares a second array @folder_name which hides the first array of that name; that makes $temp2 undefined later.
Once that is fixed, if you read the definitions of the push and pop functions carefully, you will notice that $temp1 gets the contents of the last line in file TWO if file TWO is not empty, otherwise it gets the last line in file ONE. $temp2 gets the contents of the next to last line in file TWO if there if there are two lines in file TWO, the last line in file ONE if there is one line in file TWO, and the next to last line in file ONE if file TWO is empty. In the simple case where both files are one line long, $temp1 gets the file TWO contents and $temp2 get file ONE's. Somehow I doubt that is what you had intended.
If you wanted a single line in $temp1 from file ONE, and wanted a single line in $temp2 from file TWO, you could remove the unnecessary array @folder_name and just:
You should also check the value returned from mkdir, since it may indicate an error. The easiest way is with the "... or die" idiom:my(@folder_name,$temp1,$temp2); ... $temp1 = <ONE>; ... $temp2 = <TWO>;
mkdir "/var/www/html/piRNA_html/UNAFold/output/$temp2",0777 or die "Cannot make directory /var/www/html/piRNA_html/UNAFold/outpu +t/$temp2, error was $!";