返回列表 回复 发帖

一个与中文有关的问题

sub short_str{
    my($str) = shift;
    my($maxlen) = shift;

    if ( length($str) <= $maxlen )
    {
        return $str;
    }

    if ( substr($str, 0, $maxlen) =~ /^([\000-\177]|[\200-\377][\200-\377])*(
[\
000-\177]|[\200-\377][\200-\377])$/ )
    {
        return substr($str, 0, $maxlen) . "...";
    }
    return substr($str, 0, $maxlen - 1) . "...";
}
print &short_str("我很讨厌ajal这个怪兽", 12);
print "\n";
print &short_str("我很讨厌ajal这个怪兽", 13);
print "\n";
print &short_str("ajal is not stupid", 12);
print "\n";
print &short_str("not enough?", 12);
print "\n";
返回列表