Ví dụ thiết kế này cung cấp quy trình Tcl trả về các tên phiên bản cấp cao nhất khớp với mẫu ký tự đại diện. Sao chép và dán quy trình vào một lệnh Tcl, sau đó gọi thủ tục.
Quy trình trả về tên phiên bản trong danh sách. Nếu không có tên phiên bản cấp cao nhất khớp với mẫu ký tự đại diện, quy trình trả về danh sách trống. Tên phiên bản được trả về theo thứ tự tùy chỉnh. Nếu bạn muốn danh sách các tên phiên bản được trả về theo một thứ tự cụ thể, chẳng hạn như được sắp xếp theo chữ cái, hãy sử dụng lệnh lsort để sắp xếp nó một cách phù hợp.
Ví dụ: nếu tên phiên bản cấp cao nhất trong thiết kế của bạn là foo1, foo2, foo3, bar1, bar2và bar3, một cuộc gọi thủ tục là
get_top_level_instances_matching *2
sẽ trở lại { foo2 bar2 }
.
proc get_top_level_instances_matching { ký tự đại diện } { # Tạo biến để giữ các phiên bản cấp cao nhất khớp với thứ tự đại diện { unset mảng names_to_return } array set names_to_return [list] # Bộ sưu tập tên là tất cả các hệ thống phân cấp trong thiết kế foreach_in_collection name_id [get_names -filter * -node_type hệ thống phân cấp] { # Tùy chọn short_full_path nhận được tên trong biểu mẫu # instance|instance| ... # Nó chỉ sử dụng các phiên bản bất kể cài đặt # "Tên thực thể hiển thị cho tên nút" đang bật hay tắt được đặt short_full_name [get_name_info -info short_full_path $name_id] # Phân chia hệ thống phân cấp thành một danh sách, tách nó ra trên trình phân biệt hệ thống phân cấp # | đặt short_full_pieces [split $short_full_name "|"] # Nhận tên phiên bản cấp cao nhất - tên đầu tiên trong danh sách đặt top_level_instance [lindex $short_full_matches 0] # Nếu tên phiên bản cấp cao nhất khớp với ký tự đại diện, hãy lưu nó # trở lại vào cuối quy trình nếu { [string match $wildcard $top_level_instance] } { đặt names_to_return($top_level_instance) 1 } trả lại [tên mảng names_to_return] }