Why do I get after the "autodie" a different output?
#!/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
Unless someone comes in with a better reason, this looks like a bug with autodie
in relation to the open
pragma.
Changing the last open to open my $fh2, '<:utf8', 'test.txt';
fixes the problem on my system. So that could be a temporary work around.
I just checked RT, and this is a registered bug:
https://rt.cpan.org/Public/Bug/Display.html?id=54777
Looks like it has to do with each pragma using different ways of overloading the open
function.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With