## re-formatted for ease of viewing
$outstr .= $_
foreach
(map $self->_jilout($_), @{%$self}{@{$self->{_fields_in_seq}}});
####
@$self{ @{$self->{_fields_in_seq}} };
####
package rincewind;
sub new { bless {}, shift }
sub jil {
my ($self) = @_;
my $outstr = $self->_jilout('insert_job') .
$self->_jilout('job_type');
$outstr .= $_
foreach
map $self->_jilout($_), @$self{ @{$self->{_fields_in_seq}} };
$outstr;
}
sub _jilout {
my ($self,$attr) = @_;
return '' if !exists $self->{$attr} or !defined $self->{$attr};
"$attr: ".$self->{$attr}."\n";
}
package main;
use strict;
use warnings;
use Data::Dumper;
my $o = rincewind->new;
@$o{qw/insert_job job_type/} = qw[ 50 daemon ];
my @flds = qw[ foo bar baz quux ];
@$o{ @flds } = reverse @flds;
@{ $o->{_fields_in_seq} } = @flds;
print $o->jil, $/;
exit 0;
__output__
insert_job: 50
job_type: daemon
quux: foo
baz: bar
bar: baz
foo: quux