Вы не указали ТОЧНО, что хотите, насколько логично, но лучше всего предположить, что вы хотите печатать символы между первым и последним пробелами.
В вашем примере кода будет напечатано слишком много символов, так как он печатает # символов перед последним пространством (в вашем примере 10 вместо 7). Чтобы исправить, вам нужно настроить количество символов, напечатанных путем вычитания # символов перед первым пространством.
Кроме того, вы должны начать один символ справа от «индекс» значение, чтобы избежать печати первого места - это «+1» и «-1» в примере ниже
$cat d:\scripts\test1.pl
my $str = "abc def yyy ghi";
my $first_space_index = index ($str, ' ');
my $substring = substr($str, $first_space_index + 1,
rindex($str, ' ') - $first_space_index - 1);
print "|$substring|\n";
test1.pl
|def yyy|
хороший момент, хотя вы плавающим в направлении «и теперь у вас есть две проблемы» площадь :) – DVK
@DVK нет, посмотреть, как я осторожно обошел регулярное выражение там – ivancho
Мех ... просто формальности. .. ты был там по духу;) – DVK