I think you're missing the point. You made the double quotes part of the literal filename when you defined it. The double quotes around names with spaces also works on unix shells because the shell knows to treat the contents of the double quotes as a single string. perl nor open cares about meta characters (like quotes) in strings. It takes the whole string literally. You should have simply not had the $temp_file = '"' . $temp_file . '"'; line:
#!/usr/bin/perl use strict; use warnings; $temp_file = '"' . $temp_file . '"'; #<- delebe this! my $temp_file = $ENV{'APPDATA'} . '\test.tmp'; print "|$temp_file|\n"; open(my $fh, '>', $temp_file) or die "Error opening $temp_file $!\n";
In reply to Re^3: Filename Surrounded by Quotes in a Scalar Variable Causes Open to Fail
by perlfan
in thread Filename Surrounded by Quotes in a Scalar Variable Causes Open to Fail
by roho
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |