История изменений
Исправление
nexfwall,
(текущая версия)
:
Это контекст, в котором ты используешь переменную. $ - скалярный контекст(один элемент), @ - контекст массива(данный контекст может содержать несколько элементов), % - контекст хэша(пары ключ=>значение).
Естественно, чтобы получить одно отдельное значение, лучше использовать скалярный контекст. В контексте нескольких значений(какой-то диапазон из массива), используешь контекст массива. И т.д.
Можно и в контексте массива конечно, получить одно единственное значение из него. Но ты же не будешь называть одну единственную ложку в множественном числе?
Ларри он лингвист, потому уверен что это решение пришло как раз таки из опыта изучения естественных языков человеков.
Я для себя запомнил как-то так. Может и не совсем верно идеологически, но мне пофиг.
UPD: Ну и конечно, эти контексты позволяют иметь такие ништяки, как разные пространства имён для разных типов переменных. Но это вряд ли можно назвать преимуществом, просто фича.
Исходная версия
nexfwall,
:
Это контекст, в котором ты используешь переменную. $ - скалярный контекст(один элемент), @ - контекст массива(данный контекст может содержать несколько элементов), % - контекст хэша(пары ключ=>значение).
Естественно, чтобы получить одно отдельное значение, лучше использовать скалярный контекст. В контексте нескольких значений(какой-то диапазон из массива), используешь контекст массива. И т.д.
Можно и в контексте массива конечно, получить одно единственное значение из него. Но ты же не будешь называть одну единственную ложку в множественном числе?
Ларри он лингвист, потому уверен что это решение пришло как раз таки из опыта изучения естественных языков человеков.
Я для себя запомнил как-то так. Может и не совсем верно идеологически, но мне пофиг.