#!/usr/bin/perl package Links; use strict; use CGI qw(:standard); my $Links = { musings => { text => 'Musings', link => '/cgi-bin/musing.cgi', id_list => [ 'musing_id', ], }, rants => { text => 'Rants', link => '/cgi-bin/rants.cgi', id_list => [ 'rant_id', 'ref_id', ], }, stuff => { text => 'Other Stuff and Junk', link => '/cgi-bin/misc.cgi', id_list => [ ], }, }; #----------------------------------------------------------- sub make { my $key = shift; my $vals = shift; (defined($Links->{$key})) or return; my $info = $Links->{$key}; my @id_list; for my $id (@{$info->{id_list}}) { if (defined($vals->{$id})) { push @id_list, "$id=$vals->{$id}"; } else { # what if? } } my $url = $info->{link}; if (@id_list) { my $id_str = join('&', @id_list); $url = "$url?$id_str"; } return a({-href=>$url}, $info->{text}); } 1;