Betrifft um genau zu sein nicht perl5.18.0 sondern PerlIO::scalar 0.16, das ab perl5.18.0 im core ist. Eine der Änderungen ist, dass bei memory-mapped file Zugriffen immer byte Kontext erzwungen wird, und ein Fehler geworfen wird, wenn der String bereits utf8 ist.
aus perldelta:
PerlIO::scalar has been upgraded to 0.16.
The buffer scalar supplied may now only contain code pounts (sic) 0xFF or lower. [perl #109828]
#####
$csv = SL::Helper::Csv->new(
- file => \"\x{FEFF}description\nKaffee",
+ file => \"\x{EF}\x{BB}\x{BF}description\nKaffee",
class => 'SL::DB::Part',
encoding => 'utf8',
);