[COLOR=#804040][b]puts[/b][/color] [COLOR=#ff00ff]"Reading the lines:[/color][COLOR=#6a5acd]\n[/color][COLOR=#ff00ff]"[/color]
[COLOR=#804040][b]set[/b][/color] file_in [[COLOR=#804040][b]open[/b][/color] [COLOR=#ff00ff]"erezb84.dat"[/color] [COLOR=#ff00ff]"r"[/color]]
[COLOR=#804040][b]while[/b][/color] {![[COLOR=#804040][b]eof[/b][/color] [COLOR=#008080]$file_in[/color]]} {
[COLOR=#804040][b]set[/b][/color] line [[COLOR=#804040][b]string[/b][/color] trim [[COLOR=#804040][b]gets[/b][/color] [COLOR=#008080]$file_in[/color]]]
[COLOR=#804040][b]puts[/b][/color] [COLOR=#ff00ff]"'[/color][COLOR=#008080]$line[/color][COLOR=#ff00ff]'"[/color]
[COLOR=#804040][b]if[/b][/color] {[COLOR=#008080]$line[/color] == {}} {[COLOR=#804040][b]continue[/b][/color]}
[COLOR=#804040][b]set[/b][/color] line_list [[COLOR=#804040][b]split[/b][/color] [COLOR=#008080]$line[/color] [COLOR=#ff00ff]" "[/color]]
[COLOR=#804040][b]foreach[/b][/color] {i j k} [COLOR=#008080]$line_list[/color] {}
[COLOR=#0000ff] #puts "(i, j, k) = ('$i', '$j', '$k')\n"[/color]
[COLOR=#804040][b]set[/b][/color] key [COLOR=#008080]$k[/color]
[COLOR=#804040][b]set[/b][/color] val [COLOR=#ff00ff]"[/color][COLOR=#008080]$i[/color][COLOR=#ff00ff] - [/color][COLOR=#008080]$j[/color][COLOR=#ff00ff]"[/color]
[COLOR=#804040][b]if[/b][/color] {[[COLOR=#804040][b]info[/b][/color] exists myhash([COLOR=#008080]$key[/color])]} {
[COLOR=#804040][b]lappend[/b][/color] myhash([COLOR=#008080]$key[/color]) [COLOR=#008080]$val[/color]
} [COLOR=#804040][b]else[/b][/color] {
[COLOR=#804040][b]set[/b][/color] myhash([COLOR=#008080]$key[/color]) [[COLOR=#804040][b]list[/b][/color] [COLOR=#008080]$val[/color]]
}
}
[COLOR=#804040][b]close[/b][/color] [COLOR=#008080]$file_in[/color]
[COLOR=#804040][b]puts[/b][/color] [COLOR=#ff00ff]"[/color][COLOR=#6a5acd]\n[/color][COLOR=#ff00ff]The hash of lists:[/color][COLOR=#6a5acd]\n[/color][COLOR=#ff00ff]"[/color]
[COLOR=#804040][b]set[/b][/color] file_out [[COLOR=#804040][b]open[/b][/color] [COLOR=#ff00ff]"erezb84_out.dat"[/color] [COLOR=#ff00ff]"w"[/color]]
[COLOR=#0000ff]# sort the hash on keys and print the [/color]
[COLOR=#0000ff]# keys and list elements[/color]
[COLOR=#804040][b]foreach[/b][/color] key [[COLOR=#804040][b]lsort[/b][/color] [[COLOR=#804040][b]array[/b][/color] names myhash]] {
[COLOR=#0000ff] # print all hash values key => list[/color]
[COLOR=#804040][b]puts[/b][/color] [COLOR=#ff00ff]"[/color][COLOR=#008080]$key[/color][COLOR=#ff00ff] => {[/color][COLOR=#008080]$myhash[/color][COLOR=#ff00ff]([/color][COLOR=#008080]$key[/color][COLOR=#ff00ff])}"[/color]
[COLOR=#0000ff] # print all list elements: key => element [/color]
[COLOR=#804040][b]foreach[/b][/color] lst_el [COLOR=#008080]$myhash[/color]([COLOR=#008080]$key[/color]) {
[COLOR=#804040][b]puts[/b][/color] [COLOR=#ff00ff]" [/color][COLOR=#008080]$key[/color][COLOR=#ff00ff] => [/color][COLOR=#008080]$lst_el[/color][COLOR=#ff00ff]"[/color]
[COLOR=#804040][b]puts[/b][/color] [COLOR=#008080]$file_out[/color] [COLOR=#ff00ff]"[/color][COLOR=#008080]$key[/color][COLOR=#ff00ff] => [/color][COLOR=#008080]$lst_el[/color][COLOR=#ff00ff]"[/color]
}
[COLOR=#804040][b]puts[/b][/color] [COLOR=#ff00ff]"[/color][COLOR=#6a5acd]\n[/color][COLOR=#ff00ff]"[/color]
}
[COLOR=#804040][b]close[/b][/color] [COLOR=#008080]$file_out[/color]