Aşağıdaki işlev bir yönlendiriciye giriş yapar, IPsec oturum durumunu almak için bir komut yürütür ve arabirim adını ve ip adresini dize olarak döndürür. Bir dizgeyi döndürmek yerine, işlevlerin karma dizisini döndürmesini istiyorum. Birisi bana yardım edebilir mi?Perl'de karma dizisi döndürme
sub cryptoSessionStatus {
my ($self,$interface) = @_;
my $status = 0;
my $peer_ip = 0;
#command to check the tunnel status
my $cmd = 'command goes here ' . $interface;
#$self->_login();
my $tunnel_status = $self->_login->exec($cmd);
#Regex to match the 'tunnel status' and 'peer ip' string in the cmd output
#Session status: DOWN/UP
#Peer: x.x.x.x
foreach my $line ( $tunnel_status) {
if ($line =~ m/Session\s+status:\s+(.*)/) {
$status = $1;
}
if ($line =~ m/Peer:\s+(\d+.\d+.\d+.\d+)/) {
$peer_ip = $1;
}
}
return ($status,$peer_ip);
}
Fonksiyon çağrı:
my $tunnel_obj = test::Cryptotunnels->new('host'=> 'ip');
my $crypto_sessions = $tunnel_obj->cryptoSessionStatus("tunnel1");
Bu durumda, Status => Ip'in bir karması olmasını istediğiniz anlamına mı geliyorsunuz? Ve bunun hoşuna gitti mi? –
@Ed Dunn ben ip ve durum ({, => "yukarı" ip => "x.x.x.x", durumu } ) karmaları Array dizisi = olarak döndürülür istiyorum; – virat
Çıktı nasıl görünüyor? Bir örnek alabilir miyiz? –