package Scire::Job; sub new { my $proto = shift; my $class = ref($proto) || $proto; my $filename = shift; my $self = {}; bless ($self, $class); if(defined $filename) { $self->set_filename($filename); } return $self; } sub set_filename { my $self = shift; my $filename = shift; $self->{filename} = $filename; my $jobcontents; my $jobdata; open JOB, "< ${filename}" or die "Can't open file ${filename}"; $jobcontents = join("", ); close JOB; $jobdata = eval($jobcontents); ($@) and print "ERROR: Could not parse job file ${filename}!\n"; if(defined $jobdata->{script}) { for(keys %{$jobdata->{script}}) { $self->{$_} = $jobdata->{script}->{$_}; } } for(keys %{$jobdata}) { $self->{$_} = $jobdata->{$_} unless($_ eq "script"); } } 1;