Tôi có bảng công văn mà tôi muốn khởi tạo chỉ một lần và chỉ được sử dụng bởi một hàm. Tôi đã hy vọng di chuyển bảng công văn ra ngoài chương trình con và vào cùng một khối ẩn danh, nhưng vì bảng công văn sử dụng các bao đóng để gọi các phương thức cho đối tượng được truyền vào hàm, di chuyển bảng bên ngoài hàm tách nó khỏi quyền truy cập đối tượng . Tôi có những lựa chọn nào khác cho bảng công văn này?Bảng gửi địa phương tĩnh với các cuộc gọi OO trong vòng đóng
Tôi đang sử dụng Perl 5.8, rất tiếc là tôi không thể sử dụng biến số state
.
sub foo {
my ($self, $var) = @_;
my %funcs = (
a => sub { $self->_a() },
b => sub { $self->_b() },
...
);
return $funcs{$var}->();
}
Đóng cửa duy nhất tôi có thể thấy trong ví dụ là hơn '$ tự' trong các người đăng ký ẩn danh - có những người khác trong mã thực không? Nếu có, vui lòng thêm ví dụ. –