2010-02-22 19 views
15

Trong Template Toolkit, nếu tôi có biến sau đây có chứa một hashref:Tôi làm cách nào để xử lý các khóa băm chứa các ký tự định danh bất hợp pháp trong Bộ công cụ mẫu?

[% 
    artist = { 
    'life-span' => '1975 to 1987', 
    } 
%] 

cách tốt nhất để sản xuất các dữ liệu trong 'tuổi thọ' là gì?

Tôi đã cố gắng ...

[% artist.life-span %] 

^này thất bại vì gạch nối.

[% artist.'life-span' %] 

^Điều này không thành công vì cú pháp không chính xác.

[% lifespan = 'life-span' %] 
[% artist.$lifespan %] 

^Tác vụ này, nhưng không thực tế trong ứng dụng lớn có nhiều dữ liệu.

Có cách nào tốt hơn không?

Dự án tôi đang làm là một ứng dụng web dựa trên Catalyst và dữ liệu đến từ một số dịch vụ web bên ngoài khác nhau, vì vậy tôi không kiểm soát tên của khóa băm. Tôi đoán tôi có thể xử lý trước dữ liệu trong Perl, đổi tên các khóa băm vấn đề trước khi đưa nó vào TT, nhưng điều đó có vẻ giống như một công việc khá nhút nhát.

Trả lời

26

Bạn có thể sử dụng phương thức item vmethod: [% artist.item('life-span') %].

+0

cảm ơn bạn đã phản hồi nhanh! – nick

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