App-SeismicUnixGui
view release on metacpan or search on metacpan
lib/App/SeismicUnixGui/misc/oop_prog_params.pm view on Meta::CPAN
use aliased 'App::SeismicUnixGui::misc::param_sunix';
use App::SeismicUnixGui::misc::control '0.0.3';
use aliased 'App::SeismicUnixGui::misc::control';
use aliased 'App::SeismicUnixGui::misc::L_SU_path';
=head2 Instantiation
=cut
my $L_SU_path = L_SU_path->new();
=head2 program parameters
private hash
=cut
my $oop_prog_params = {
_label => '',
_prog_name => '',
_prog_version => '',
_param_labels_aref => '',
_param_values_aref => '',
};
=head2 sub _get_prefix_aref
obstain prefix values externally for the module
MUST first use prefix_aref method to
set prefixes internally
use program_name_spec.pm
bring in a different module
each program
prefix rules are in *_spec.pm
prefixes can include a directory path e.g.,
=cut
sub _get_prefix_aref {
my ($self) = @_;
if ( $oop_prog_params->{_prog_name} ) {
# my $L_SU_global_constants = L_SU_global_constants->new();
my $program_name = $oop_prog_params->{_prog_name};
$L_SU_path->set_program_name($program_name);
my $pathNmodule_spec_w_slash_pm =
$L_SU_path->get_pathNmodule_spec_w_slash_pm();
my $pathNmodule_spec_w_colon =
$L_SU_path->get_pathNmodule_spec_w_colon();
require $pathNmodule_spec_w_slash_pm;
# INSTANTIATE
my $package = $pathNmodule_spec_w_colon->new();
$package->binding_index_aref();
$package->prefix_aref();
my $prefix_aref = $package->get_prefix_aref();
# print("oop_prog_params,_get_prefix_aref, prefix_aref=@{$prefix_aref} \n");
return ($prefix_aref);
}
else {
print("oop_prog_params,_get_prefix, missing program name\n");
}
return ();
}
=head2 sub _get_suffix_aref
use program_name_spec.pm
to bring in a different module
for each program
suffix rules are in *_spec.pm
bring in suffixes, if they exist
=cut
sub _get_suffix_aref {
my ($self) = @_;
if ( $oop_prog_params->{_prog_name} ) {
my $program_name = $oop_prog_params->{_prog_name};
$L_SU_path->set_program_name($program_name);
my $pathNmodule_spec_w_slash_pm =
$L_SU_path->get_pathNmodule_spec_w_slash_pm();
my $pathNmodule_spec_w_colon =
$L_SU_path->get_pathNmodule_spec_w_colon();
require $pathNmodule_spec_w_slash_pm;
# INSTANTIATE
my $package = $pathNmodule_spec_w_colon->new();
# set internally and get suffix values externally for the module
$package->binding_index_aref();
$package->suffix_aref();
my $suffix_aref = $package->get_suffix_aref();
# print("oop_prog_params,_get_suffix_aref, suffixes are: @{$suffix_aref}\n");
return ($suffix_aref);
}
else {
print("oop_prog_params,_get_suffix, missing program name\n");
}
return ();
}
=head2 sub _get_prefix_for_a_label
To place a prefix in front of a sunix parameter
for o/p to a perl flow
=cut
sub _get_prefix_for_a_label {
my ($self) = @_;
my $param_sunix = param_sunix->new();
my $control = control->new();
my $prefix = '';
my @all_program_labels;
my $labels_aref;
my @prefixes;
# The following must exist
my @all_prog_prefixes = @{ _get_prefix_aref() };
my $label = $oop_prog_params->{_label};
my $program_name = $oop_prog_params->{_prog_name};
# find all the possible names/labels for this program
$param_sunix->set_program_name( \$program_name );
$labels_aref = $param_sunix->get_names();
@all_program_labels = @$labels_aref;
# number of all possible labels
my $length = $param_sunix->get_length4perl_flow();
# print("2. oop_prog_params,_get_prefix_for_label, prefix length: $length\n");
# print(
# "2. oop_prog_params,_get_prefix_for_label, prefix labels: @all_program_labels\n"
# );
# what's the index in the configuration file
# (not the o/p perl script)
# when label names match?
for ( my $i = 0 ; $i < $length ; $i++ ) {
# both labels should contain SOMETHING
if ( $label && $all_program_labels[$i] ) {
( run in 0.581 second using v1.01-cache-2.11-cpan-2398b32b56e )