2017-02-24 12 views
5

Tôi muốn nhìn thấy mọi nơi khi biến trong kịch bản perl được tạo ra/truy cập/phá hủyLàm thế nào để buộc mọi biến trong kịch bản perl?

Nó có thể dễ dàng có thể truy cập sử dụng tie hay Variable::Magic

Nhưng làm thế nào để áp dụng kỳ diệu này tự động khi biến được tạo ra?

+0

Bạn có thể muốn đặt tất cả những thứ này trong một mảng kết hợp và liên kết để thay vào đó mã trong ma thuật của bạn nằm trong đó. – tadman

+0

Biến là "_created_" trong giai đoạn BEGIN. Vì vậy, tôi không thấy làm thế nào để theo dõi điều đó thông qua các phương pháp này ...? – zdim

+0

@zdim: Tôi nghĩ rằng tôi có thể sử dụng: 'BEGIN {* CORE :: GLOBAL :: my = sub {apply_magic_to_new_variable (shift)}}' Tuy nhiên 'my' có thể được gọi là bareword. Nó sẽ rất tiện dụng nếu được gọi với tham chiếu đến biến mới khi hook này cung cấp –

Trả lời

1

Bạn có thể xem B :: Xref tạo danh sách tham chiếu chéo của tất cả các biến trong ứng dụng của bạn. Về cơ bản, bạn cần phải đi bộ mã byte để tìm tất cả các khai báo biến/khởi tạo. Bạn cũng có thể thay đổi mã byte, tức là thêm mã để buộc các biến. Tuy nhiên, tôi không thể chỉ cho bạn một ví dụ, vì điều này hiếm khi được thực hiện.

Thay vào đó, bạn có thể sử dụng bộ lọc mã để thêm các lệnh tie(). Tuy nhiên, bộ lọc mã không được bảo đảm để xác định chính xác các khai báo/khởi tạo biến.

Các vấn đề liên quan