Печать переменных массива при использовании или без использования двойных кавычек - PullRequest
2 голосов
/ 13 апреля 2010

Когда я научился печатать переменные массива, я обнаружил пробел, вставленный при использовании двойных кавычек. Фрагмент кода, как показано ниже. Не могли бы вы сказать мне, почему?

#!/usr/bin/perl -w
use strict;
use warnings;

my @str_array = ("Perl","array","tutorial");
my @int_array = (5,7,9,10);

print @str_array;
print "\n";
# added the double quotes
print "@str_array";
print "\n";
print @int_array;
print "\n";
# added the double quotes
print "@int_array";

Выход:

Perlarraytutorial
Perl array tutorial
57910
5 7 9 10

Ответы [ 2 ]

5 голосов
/ 13 апреля 2010

Вот perlfaq, который отвечает на ваш вопрос:

Почему я получаю странные пробелы при печати массива строк?

5 голосов
/ 13 апреля 2010

Когда переменная используется внутри строки, используется интерполяция строки. Строковая интерполяция означает, что, помимо прочего, переменная отформатирована, чтобы стать строкой. Когда переменная массива отформатирована, чтобы стать строкой, ей дают пробелы между элементами. Эти пробелы фактически определяются переменной $ ". Значением по умолчанию для этой переменной является пробел. Для получения дополнительной информации см. Документацию perl для специальных переменных .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...