Contoh desain ini memberikan prosedur Tcl yang mengembalikan nama instans tingkat atas yang cocok dengan pola wildcard. Salin dan tempel prosedur ke skrip Tcl, lalu hubungi prosedurnya.
Prosedur ini mengembalikan nama instans dalam daftar. Jika tidak ada nama instans tingkat atas yang cocok dengan pola wildcard, prosedur akan mengembalikan daftar kosong. Nama instans dikembalikan dalam urutan semena-mena. Jika Anda ingin daftar nama instans dikembalikan dalam urutan tertentu, seperti disortir menurut abjad, gunakan perintah lsort untuk mengurutkannya dengan tepat.
Misalnya, jika nama instans tingkat atas dalam desain Anda adalah foo1, foo2, foo3, bar1, bar2, dan bar3, panggilan prosedur
get_top_level_instances_matching *2
akan mengembalikan { foo2 bar2 }
.
proc get_top_level_instances_matching { wildcard } { # Membuat variabel untuk menahan instans tingkat atas yang cocok dengan penangkapan wildcard { array unset names_to_return } array set names_to_return [list] # Koleksi nama adalah semua hierar hierarki desain foreach_in_collection name_id [get_names -filter * -node_type hierarki] { # Opsi short_full_path mendapatkan nama dalam bentuk # contoh|instance|... # Ini hanya menggunakan instans terlepas dari apakah pengaturan # "Nama entitas tampilan untuk nama node" aktif atau tidak diatur short_full_name [get_name_info -info short_full_path $name_id] # Membagi hierarki menjadi daftar, memecahnya pada pemisah hierarki # | set short_full_pieces [split $short_full_name "|"] # Dapatkan nama instans tingkat atas - yang pertama di set daftar top_level_instance [lindex $short_full_pieces 0] # Jika nama instans tingkat atas cocok dengan wildcard, simpan # untuk mengembalikannya di akhir prosedur jika { [string match $wildcard $top_level_instance] } { set names_to_return($top_level_instance) 1 } } return [nama array names_to_return] }