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

questionAnswers(3)

yourAnswerToTheQuestion