2013-08-12 29 views
8

Trong khi tôi đang thử nghiệm, tôi phát hiện ra rằng

print ${\string}

sẽ in string vào màn hình.
Điều này có bình thường không? Cái này có tên không?

Trả lời

11

Thanh "chuỗi" của thanh chặn được hiểu là chuỗi mà bạn không báo giá. use strict sẽ cấm điều này và use warnings sẽ phải phàn nàn về điều này.

Sau đó, bạn sẽ tham chiếu đến chuỗi (có hiệu lực, my $ref = \"string";) và hủy bỏ nó (hiệu quả, ${$ref}).

Điều này là "bình thường" theo nghĩa là cuộc sống không có strict đôi khi trơn trượt và sắc nét.

+5

Cũng thử 'tiểu chuỗi {return 'foo'}; in $ {\ string} 'cung cấp độ phân giải khác cho thanh chủ đề –

7

Đó là một tham chiếu đến chuỗi được dereferenced với ${}

perl -MO=Deparse -e "print ${\string}" 
print ${\'string';};