Como eu escrevo um arquivo cujo * filename * contém caracteres utf8 no Per
Estou com dificuldades para criar um arquivo que contenha caracteres não-asci
O script a seguir funciona bem, se for chamado com0
como parâmetro, mas morre quando chamado com1
.
A mensagem de erro é open: Argumento inválido na linha C: \ temp \ filename.pl 1
O script é iniciado dentro decmd.exe
.
Eu espero que ele escreva um arquivo cujo nome seja (dependendo do parâmetro)äöü.txt
ouäöü☺.txt
. Mas não consigo criar o nome do arquivo que contém um smile
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;
Provavelmente estou sentindo falta de algo óbvio para os outros, mas não consigo encontrar, por isso gostaria de ter alguma indicação para resolver iss