2010-10-15 44 views

Trả lời

46

Có một cách viết tắt tương tự trong Perl cho điều này:

$a = 1; 
print "@{[$a + 1]}" 

này hoạt động vì [] tạo ra một tham chiếu đến một mảng chứa một phần tử (kết quả của việc tính toán), và sau đó là @{} dereferences mảng, mà nội suy chuỗi bên trong in từng phần tử của mảng theo thứ tự. Vì chỉ có một, nó chỉ in một phần tử.

+3

Có một tùy chọn khác '" $ {\\ ($ a + 1)} "' nhưng tôi thích cũ hơn vì mục đích dễ đọc. –

+2

Tôi không nghĩ rằng bạn cần phải thoát khỏi dấu gạch chéo ngược. Tôi đã thử nó và nó hoạt động: '" $ {\ ($ a + 1)} "' –

+1

@ Hynek-Pichi-Vychodil 'in" $ {\\ (Cwd :: cwd)} ";' get'SCALAR (0x28b7124) ',' in "$ {\ (Cwd :: cwd)}"; 'get'C:/Người dùng/Quản trị viên/IdeaProjects/untitled2' cho tôi – BaiJiFeiLong

9

Bạn có thể sử dụng mẹo @{[ EXPRESSION ]} mà Greg Hewgill đã đề cập.

Ngoài ra còn có mô-đun Interpolation, cho phép bạn thực hiện các phép biến đổi tùy ý trên các giá trị bạn đang nội suy (như các thực thể HTML mã hóa) ngoài việc đánh giá các biểu thức.

+0

+1 kinda gọn gàng, ngay cả khi nó là một chút clunky và sử dụng quan hệ . – Axeman

+0

@Axeman có vấn đề gì với quan hệ? Chỉ tò mò thôi. – srchulo

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