As others have explained to me here previously, if you use unicode characters in your code, then you need to specify that in your uses. For example, if you are using utf8 characters within your code, you should specify "use utf8;". However, you do not need to make this declaration for characters that your code will act upon, only for those utf8 characters that are in the code itself.
in reply to Regexp with unicode problem
For characters outside your code, you may wish to make sure that they are recognized as utf8 by perl. The following examples present some ways of doing this--though you should not need to use them all at once. These are all lines which I have used at one time or another to deal with utf8.
#FOR WORKING WITH UTF8, AS NECESSARY WITH CJK
#PARTICULARLY NEED THE ENCODE/DECODE FUNCTIONS
use Encode qw(encode decode);
#TO MAKE THE DEFAULT STANDARD ENCODING BE UTF8
use open qw( :std :encoding(UTF-8) );
#LIKE print CGI::header(); FOR UTF8 OUTPUT TO HTML
print "Content-type: text/html; charset=utf-8\n\n";
#SET DEFAULT I/O TO UTF8
binmode STDOUT, ":utf8";
#OPEN/READ A UTF8 FILE
open (DAT, '<:encoding(utf8)', $Data) or die "Can't open file! $!\n";
$source = <DAT>;