Вариант для Perl
Код:
my $lenm=55; # Максимальная длина текста
my $namefirst="Это первоначальное название продукта, которое нужно урезать";
my $nameshort=""; # Здесь будет урезанное имя
if (length($namefirst)<=$lenm ) {
$nameshort=$namefirst;
}
else {
$ml=substr($namefirst,0,$lenm);
$ml=~ s/^(.+)(\s)(\S*)$/$1$2$3/;
$nameshort=$1;
}
Код взят из древнего скрипта. Ща смотрю и мне кажется, что должно сработать и
$nameshort=substr($namefirst,0,$lenm);
$nameshort=~ s/^(.+)(\s)(\S*)$/$1/;