WHats wrong in here, why can this file handle not open ?
It's good that you are checking the success of the open function call and calling die if it fails. The answer to the question "why?" is contained in the $! error variable (see perlvar, especially the discussion in Error Variables). Put that in your die function and see the result:
open(WRITEFILE, ">$filelist") || die("ERROR: unable to open file: $! \n");
In addition, the statement
my @files = (file1, file2, file3);
suggests you are not using warnings and strict at the beginning of your code:
I strongly suggest you do so.
Furthermore, the statement
$filelist = "C:\Users\cign\Desktop\printFile.txt";
is highly suspect. Add a print statement for $filelist immediately after this assignment and check if what is printed is what you expect. The other tactic is to include the filename in delimiters in the die call discussed above:
open(WRITEFILE, ">$filelist") || die("opening '$filelist': $!\n");
The next step is to use the three-argument form of open:
open my $writefile, '>', $filelist or die "opening '$filelist': $!"