2011-02-10 26 views
16

"Autodie" nin arkasından neden farklı bir çıktı alıyorum? Birisi daha iyi bir sebeple içinde gelmediği süreceAutodie-pragmanın kodlama üzerinde etkisi var mı?

#!/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 

cevap

17

, bu open pragma ilgili olarak autodie ile bir böcek gibi görünüyor.

Son açık olan open my $fh2, '<:utf8', 'test.txt';'un değiştirilmesi, sistemdeki sorunu giderir. Yani bu geçici bir iş olabilirdi.

Sadece RT kontrol ettim ve bu tescilli hata şudur: open işlevini aşırı farklı yollarını kullanarak her pragma ile ilgisi var gibi

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

görünüyor.

+1

Sadece bu hata için yama ekledim. https://github.com/pfenwick/autodie/pull/12 – Schwern

İlgili konular