{ # closure for caching  my %userCache = ();  sub GetUserData {    my $id = shift;    unless (exists $userCache{$id}) {      $userCache{$id} = &FetchInfoFromDatabase($id};    } # unless    return $userCache{$id};  } # GetUserData } # closure for caching