#! perl -slw use strict; my %states = ( 0000 => 1, 0001 => 0, 0010 => 0, 0011 => 0, 0100 => 0, 0101 => 0, 0110 => 0, 0111 => 0, 1000 => 1, 1001 => 0, 1010 => 1, 1011 => 0, 1100 => 1, 1101 => 0, 1110 => 0, 1111 => 1, ); my $state = ....; ## Get state from wherever? if( $states{ $state } ) { ## Validate values my( $startTime, $endTime ) = ...; ## Get times if( $startTime < $endTime ) { ## Do it } else { ## Reject. } else { ## Reject. }