#!/usr/bin/perl -w use strict; my %TZMap = ( sjc => { TZ1 => 'PST', TZ2 => 'PDT', TZFILE => '/usr/share/zoneinfo/America/Los_Angeles', }, blr => { TZ1 => 'IST', TZ2 => 'IST', TZFILE => '/usr/share/zoneinfo/Asia/Calcutta', }, ); sub testmap { my $tz = `/bin/date +%Z`; chomp($tz); my $site = `/bin/hostname | cut -d- -f2 | cut -c1-3`; chomp($site); my $tzfile = $TZMap{$site}->{TZFILE}; print "$site:" . $TZMap{$site}->{TZ1} . ":" . $TZMap{$site}->{TZ2} . ":$tz\n"; } testmap(); #### sjc:PST:PDT:PST #### package MAN::ER::SRole::Base; use strict; use base qw(MAN::ER::SRole); use MAN::ER::SRole; ... code omitted ... my %TZMap = { ... code omitted ... }; ... code omitted ... sub new { my $proto = shift; my $class = ref($proto) || $proto; my $self = $class->SUPER::new(); bless($self, $class); return $self; } ... code omitted ... sub check_timezone { my ($self) = @_; my $site = `/bin/hostname | /bin/cut -d- -f2 | /bin/cut -c1-3`; chomp($site); my $tz = `/bin/date +%Z`; chomp($tz); my $tzfile = $TZMap{$site}->{'TZFILE'}; print Dumper(%TZMap); print "$site:" . $TZMap{"$site"}{TZ1} . ":" . $TZMap{$site}->{TZ2} . ":$tz\n"; if ( $TZMap{$site}->{TZ1} eq $tz or $TZMap{$site}->{TZ2} eq $tz ) { $self->log_okay_message( "yada yada\n"); } else { $self->log_error_message("blah blah\n" ); } } sub check { my ($self) = @_; $self->clear_result(); $self->_common('check'); $self->ensureprocess($_) foreach @processes; $self->check_timezone(); } #### $VAR1 = { 'HASH(0x88eb640)' => undef, 'sjc' => {} }; sjc:::PST