Мне нужен способ сделать действительно инкапсулированные переменные в Perl, без использования каких-либо фреймворков, таких как Moose, чтобы вы могли обращаться к переменным экземпляра только через getters и seters. Должны быть частные переменные экземпляра.Парадигмы OO и инкапсулированные переменные экземпляра в Perl5
Подпрограммы, соответственно, не являются проблемой, потому что вы можете определить их так, чтобы их можно было использовать только через экземпляр, соответственно, ссылку. Но переменные вы всегда можете получить через имя пакета, например class-vars.
Есть ли способ предотвратить это?
Я отредактировал ваш вопрос, чтобы сделать его более читаемым. Убедитесь, что он по-прежнему верен. Но, боюсь, я никогда не слышал об этом. переменная *; Что ты имеешь в виду? – Borodin
Это была ошибка, там нет ни одного. вары. То, что я имею в виду, это то, что вы всегда можете вызвать perl-переменную throw имя пакета (имя класса) и в то же время бросать экземпляр, и это, например, в Java невозможно, переменная экземпляра - это переменная экземпляра и класс переменная - это переменная класса, возможно, я немного отказался от своего вопроса, поэтому, чтобы завершить ее, я хотел бы иметь реальную переменную частного экземпляра в perl. –
@DenisKomnenovic s/throw/through/если я не ошибаюсь. Отредактировал ваш Q. – laune