Perl怎么匹配N多元字符转义字符

Perl如何匹配N多元字符转义字符?
我想去匹配一个字符串“abcdefghijklmnOPQRSTUVWXYA   1234567890,.()!@#%^*{}[]-=+?> '*测试”(双引号之间的),代码如下


$real= "abcdefghijklmnOPQRSTUVWXYA   1234567890,\.\(\)!\@#%^*\{}\[]-=\+\?> \ '\*测试 ";
$expect= ',\.\(\)!\@#%^*\{}\[]-=\+\?> \ '\* ';
if   ($real=~/$expect/)
{
    print   "YES\n ";
}
else
{
    print   "NO\n ";
}
print   "$real\n ";
print   "$expect\n ";


无论怎样,我都不能得到YES的结果!欲哭无泪~
问题好像出在下面几个字符:   .   (   )   !

------解决方案--------------------

$real= "abcdefghijklmnOPQRSTUVWXYA 1234567890,\.\(\)!\@#%^*\{}\[]-=\+\?> \ '\*测试 ";
$expect= '\,\.\(\)\!\@\#\%\^\*\{\}\[\]\-\=\+\?\> \ '\* ';
if ($real=~/$expect/)
{
print "YES\n ";
}
else
{
print "NO\n ";
}
print "$real\n ";
print "$expect\n ";

把所有的符号都加上转义。