Vous n'avez pas spécifié EXACTEMENT ce que vous voulez pour la logique mais la meilleure estimation est que vous voulez imprimer des caractères entre le premier et le dernier espace.
Votre exemple de code imprime trop de caractères car il imprime # de caractères avant le dernier espace (dans votre exemple, 10 au lieu de 7). Pour corriger, vous devez ajuster le nombre de caractères imprimés en soustrayant le nombre de caractères avant le premier espace.
En outre, vous devez un caractère à droite de votre valeur « index » pour éviter d'imprimer le premier espace - ce « +1 » et « -1 » dans l'exemple ci-dessous
$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|
bon point, si vous êtes flottant vers « et maintenant vous avez deux problèmes » zone :) – DVK
@DVK non, non, voir comment j'éludé soigneusement l'expression régulière, il – ivancho
Meh ... simple formalité. .. vous étiez là en esprit;) – DVK