perl encoding autodie

perl - ¿El autodie-pragma tiene influencia en la codificación?



encoding (1)

¿Por qué obtengo después de "autodie" una salida diferente?

#!/usr/bin/env perl use warnings; use 5.012; use utf8; use open '':encoding(utf-8)''; use open '':std''; open my $fh, ''>'', ''test.txt'' or die $!; say $fh ''käse''; close $fh; open my $fh1, ''<'', ''test.txt'' or die $!; while ( my $row = readline( $fh1 ) ) { print $row; } close $fh1; use autodie; open my $fh2, ''<'', ''test.txt''; while ( my $row = readline( $fh2 ) ) { print $row; } close $fh2; # Output: # käse # käse


A menos que alguien venga con una razón mejor, esto parece un error con autodie en relación con el pragma open .

Cambiando la última apertura para open my $fh2, ''<:utf8'', ''test.txt''; Soluciona el problema en mi sistema. Así que eso podría ser un trabajo temporal.

Acabo de comprobar RT, y este es un error registrado:

https://rt.cpan.org/Public/Bug/Display.html?id=54777

Parece que tiene que ver con cada pragma usando diferentes formas de sobrecargar la función open .