#!/usr/local/perl -w package VRTSAgent; use Carp; use Data::Dumper; ####################################### ## This is the ADT for an agent. ####################################### my %fields = ( agent =>undef, os =>%os, version =>@versions, ); sub new { my $class = shift; my $self = {%fields}; bless $self, $class; return $self; } sub agent { if ($_[1]) { $agent = $_[1]; } return $agent; } sub version { if ($_[2]) { $version[$_[1]]=$_[2]; } return $version[$_[1]]; } sub os { if ($_[3]) { $os{$_[1]}{$_[2]} = $_[3]; } return $os{$_[1]}{$_[2]}; } sub os_keys { return keys (%os); } sub os_key_each{ return keys ( %{$os{$_[1]}} ); } sub _dump_os { print Dumper(\%os); } sub make_Versions { my ($key, @keys, @each, %ver); @keys = &os_keys; foreach $key (@keys) { @each = keys ( %{$os{$key}} ); foreach $tmp (@each) { $ver{$tmp}=1; } } @versions = keys (%ver); @versions = sort @versions; } sub get_versions { return @versions; } sub DESTROY { }