私は設定ファイルから読み込むモジュールを持っています。設定ファイルの値を取り出して$ path、$ file、$ hostに格納します。これらの値を新しいサブルーチンに渡して文字列と連結し、それを返そうとすると失敗します。私にエラーを与える:perlの変数と文字列の組み合わせを返します
モジュール:
package Module;
use strict;
use Carp;
# Constructor and initialisation
sub new { #class method
my $class = shift; #shift without arguments is shift @_ , takes 1st element of argument array
my $self = {}; #created a Hash reference with @_ helping to store values in a hash
bless ($self, $class); #turning self into an object by telling which class it belongs to without hardcode name in
$self->{_created} = 1; #syntax for accessing the contemts of a hash: refrence $object_name->{property_name}.
return $self;
}
#reading from config file
sub read {
my ($self, $file) = @_;
my ($line, $section);
open(HFILE, "$file") || die "Could not open file '$file' $!";
$self->{_filename} = $file; # Store a special property containing the name of the file
while (chomp (my $line = <HFILE>))
{
if ($line =~ /^\[(.*)\]/)
{
$section = $1;
}
elsif ($line =~ /^([^=]+)=(.*)/)
{
my ($config_name, $config_val) = ($1, $2);
if ($section)
{
$self->{"$section.$config_name"} = $config_val;
} else {
$self->{$config_name} = $config_val;
}
}
}
close HFILE;
return 1;
}
#fetching values needed
sub fetch {
my ($self, $key) = @_;
return $self->{$key};
}
sub _setup{
my ($self, @location) = @_;
my $command = ''.$location[1].' --eg-config '.$location[0].' -H "Host:'.$location[2].'" -ik https://'.$location[2].'';
return $self->$command;
}
スクリプト:あなたはINI
ファイルを読んでいるので
#!/usr/bin/perl
use Module;
use strict;
my $value = Module->new();
$value->read("/Users/hhansraj/git/edgegrid-curl/api.txt") or die "Couldn't read config file: $!";
my $path=$value->fetch('location.path');
my $file=$value->fetch('location.file');
my $host=$value->fetch('credentials.host');
$value->_setup($path,$file,$host);
資格情報を削除します。
このtogeatherを置くことは私たちのようなものを提供します!質問に秘密を公開しないでください。 – sschale
sschaleは十分に明確ではありませんでした。あなたはあなたの資格情報を変更する必要があります。あなたの資格情報は[編集履歴](http:// stackoverflow。com/posts/36144126/revisions)、あなたの質問の元のバージョンはほとんどの場合、すでに検索エンジンと模倣サイトによってキャッシュされています。 – ThisSuitIsBlackNot