Что делают $/ и $\ do?

Я обнаружил $\ = $/ когда я исследовал, как объединить 2 массива, но я совсем не понимаю этого. Пример с этим:

use strict;
$\ = $/;

my @array1 = ("string1", "string2");
my @array2 = ("string3", "string4");

my @array = (@array1, @array2);

print for @array;

Что они имеют в виду?

2 ответа

Решение

$\ является разделителем выходной записи. Все, что он содержит, добавляется к каждому print заявление. $/ является разделителем входной записи, который по умолчанию имеет значение \n (новая линия). Установив разделитель выходной записи на новую строку, вам не нужно добавлять новую строку в ваши операторы печати, делая оператор:

print for @array;

.. выглядят намного более гладкими, по сравнению с

print "$_\n" for @array;

Обратите внимание, что если бы он использовал use 5.010; вместо $\ = $/;он мог бы использовать

say for @array;

Обратитесь к документации Perl, или другая хорошая статья здесь.

$/ является разделителем входной записи, $\ является searator выходной записи. Ссылка выше имеет несколько полезных мнемонических устройств для запоминания этих и всех других специальных переменных Perl.

Другие вопросы по тегам