Questo esempio di progettazione fornisce una procedura Tcl che restituisce i nomi di istanza di primo livello che corrispondono a un modello di caratteri jolly. Copiare e incollare la procedura in uno script Tcl e quindi chiamare la procedura.
La procedura restituisce i nomi delle istanze in un elenco. Se nessun nome di istanza di primo livello corrisponde al modello di caratteri jolly, la procedura restituisce un elenco vuoto. I nomi delle istanze vengono restituiti in un ordine arbitrario. Se si desidera che l'elenco dei nomi delle istanze venga restituito in un ordine particolare, ad esempio in ordine alfabetico, utilizzare il comando lsort per ordinarlo in modo appropriato.
Ad esempio, se i nomi di istanza di primo livello nella progettazione sono foo1, foo2, foo3, bar1, bar2e bar3, una chiamata di procedura di
get_top_level_instances_matching *2
avrebbe restituito { foo2 bar2 }
.
proc get_top_level_instances_matching { wildcard } { # Crea una variabile per contenere le istanze di primo livello che corrispondono al wildcard catch { array unset names_to_return } set di array names_to_return [elenco] # L'insieme di nomi è tutte le gerarchie nel foreach_in_collection name_id di progettazione [get_names -filter * -node_type gerarchia] { # L'opzione short_full_path ottiene il nome nel formato # istanza|instance|... # Utilizza solo istanze indipendentemente dal fatto che l'impostazione #"Display entity name for node name" sia attivata o disattivata short_full_name [get_name_info -info short_full_path $name_id] # Suddividere la gerarchia in un elenco, suddividendola nel separatore di gerarchia | set short_full_pieces [split $short_full_name "|"] # Ottieni il nome dell'istanza di primo livello - il primo nell'elenco impostato top_level_instance [lindex $short_full_pieces 0] # Se il nome dell'istanza di primo livello corrisponde al carattere jolly, salvalo # per restituire alla fine della procedura se { [stringa corrisponde $wildcard $top_level_instance] } { set names_to_return($top_level_instance) 1 } } restituire [nomi di array names_to_return] }