1898184e3Ssthen#!./perl 2898184e3Ssthen 3898184e3Ssthen# Check if eval correctly ignores the UTF-8 hint. 4898184e3Ssthen 5898184e3SsthenBEGIN { 6*b8851fccSafresh1 chdir 't' if -d 't'; 7898184e3Ssthen require './test.pl'; 8898184e3Ssthen} 9898184e3Ssthen 10898184e3Ssthenplan (tests => 5); 11898184e3Ssthen 12898184e3Ssthenuse open qw( :utf8 :std ); 13898184e3Ssthenuse feature 'unicode_eval'; 14898184e3Ssthen 15898184e3Ssthen{ 16898184e3Ssthen my $w; 17898184e3Ssthen $SIG{__WARN__} = sub { $w = shift }; 18898184e3Ssthen use utf8; 19898184e3Ssthen my $prog = "qq!\x{f9}!"; 20898184e3Ssthen 21898184e3Ssthen eval $prog; 22898184e3Ssthen ok !$w; 23898184e3Ssthen 24898184e3Ssthen $w = ""; 25898184e3Ssthen utf8::upgrade($prog); 26898184e3Ssthen eval $prog; 27898184e3Ssthen is $w, ''; 28898184e3Ssthen} 29898184e3Ssthen 30898184e3Ssthen{ 31898184e3Ssthen use utf8; 32898184e3Ssthen isnt eval "q!\360\237\220\252!", eval "q!\x{1f42a}!"; 33898184e3Ssthen} 34898184e3Ssthen 35898184e3Ssthen{ 36898184e3Ssthen no utf8; #Let's make real sure. 37898184e3Ssthen my $not_utf8 = "q!\343\203\213!"; 38898184e3Ssthen isnt eval $not_utf8, eval "q!\x{30cb}!"; 39898184e3Ssthen { 40898184e3Ssthen use utf8; 41898184e3Ssthen isnt eval $not_utf8, eval "q!\x{30cb}!"; 42898184e3Ssthen } 43898184e3Ssthen} 44