Я пытаюсь создать файл, содержащий символы не-ascii.
Следующий script работает отлично, если он вызывается с параметром 0
как параметр, но умирает при вызове с 1
.
Открывается сообщение об ошибке: Недопустимый аргумент в строке C:\temp\filename.pl 15.
script запускается в пределах cmd.exe
.
Я ожидаю, что он напишет файл, имя которого либо (в зависимости от параметра) äöü.txt
, либо äöü☺.txt
. Но я не могу создать имя файла, содержащее смайлик.
use warnings;
use strict;
use Encode 'encode';
# Text is stored in utf8 within *this* file.
use utf8;
my $with_smiley = $ARGV[0];
my $filename = 'äöü' .
($with_smiley ? '☺' : '' ).
'.txt';
open (my $fh, '>', encode('cp1252', $filename)) or die "open: $!";
print $fh "Filename: $filename\n";
close $fh;
Мне, вероятно, не хватает чего-то, что очевидно для других, но я не могу найти, поэтому я был бы признателен за любой указатель на его решение.