小编rpg*_*rpg的帖子

将SUPER引用到超类的对象

请参阅oper http://perldoc.perl.org/perlobj.html上的perldoc

根据文档:"重要的是要注意SUPER指的是当前包的超类,而不是指对象的超类."

现在,我处于这样一种情况,我需要SUPER来引用对象的超类.

所以,寻找任何方法来实现它.

oop perl inheritance super

10
推荐指数
1
解决办法
7774
查看次数

模拟主机无法访问 - 如何实现/实现它

这是我的场景:

A是配置服务器,B是客户端.每当B的设置发生任何变化时,它都会将相应的配置文件上传到A.

我是一名自动化工程师,负责自动化.其中一个方案是断开A与网络的连接或停止服务器A.对B执行一些更改并确保B无法将文件上载到配置服务器A.

要使其自动化,请停止服务器A并执行相应操作的简单方法.

由于A和B也被其他方用于其他目的,因此我无法将A或B与网络断开连接或在A处停止服务器.

所以,我期待任何解决方案,以便我可以模拟主机(配置服务器)无法访问的方案.因此,当B将向A发送更新时,它将失败,但实际上A正在照常运行.

请建议我实现它的一些方法.

我使用Perl作为编程语言,但如果有其他语言的解决方案,我很好.

perl networking network-programming network-protocols

10
推荐指数
1
解决办法
4836
查看次数

我应该使用Perl的LWP还是lib curl?

据我所知(从HTTP客户端的角度来看),我们在Perl中提供了LWP和libcurl(WWW :: Curl).我们有什么标准可供选择吗?

perl

10
推荐指数
4
解决办法
1万
查看次数

管理和加载属性的最佳实践

我期待了解一些管理属性文件的最佳方法.

我们有一套设备(比如说N).每个设备都具有某些属性.例如,设备A具有属性

A.a11 = valuea11

A.a12 = valuea12

.

设备B具有属性

B.b11 = valueb11

B.b12 = valueb12.

除此之外,它们还具有适用于所有设备的一些共同属性.

X.x11 = valuex11

X.x12 = valuex12

我正在为这些设备上运行一些测试套件编写自动化程序.一次,在单个设备上运行测试脚本.设备名称将作为参数传递.根据设备名称,代码将获取相应的属性和公共属性,并使用这些属性更新设备.例如,对于设备A,代码将获取A.a11,A.a12(特定设备A)和X.x11,X.x12(公共)属性,并在运行测试脚本之前将其上载到设备.

因此,在代码中,我需要管理这些属性,以便只将设备特定和公共属性上传到设备,而忽略其余属性.我这样管理它

if ($device eq 'A') then
    upload A's properties
elsif ($device eq 'B') then
    upload B's properties
endif

upload Common (X) properties.
Run Code Online (Sandbox Code Playgroud)

随着设备数量的不断增加,以这种方式管理设备变得有点困难.

所以我期待着一些其他最好的方法来管理这些属性.

java oop perl design-patterns properties

6
推荐指数
1
解决办法
469
查看次数

了解这个地图行为

我正在使用map来提取2D数组的第一个元素.这是一个小代码片段.

my $array = [ [1,11,111], [2,22], undef, [4] ];

my @firstList = map { (defined $_) && $_->[0] } @$array;
Run Code Online (Sandbox Code Playgroud)

所以在这里我期待map返回一个数组,其元素的值为undef或$ array元素的第一个元素.

但输出与我期望的不一样.对于undef,我得到'标量'类型的元素.

如果我用以下块更改map语句,那么我得到了预期的结果.

my @firstList = map { $_->[0] } @$array;
Run Code Online (Sandbox Code Playgroud)

请帮我理解这两个地图陈述.

perl

5
推荐指数
1
解决办法
331
查看次数

XSLT 1.0 - 条件节点分配

使用纯XSLT 1.0,我如何有条件地分配节点.我正在尝试这样的事情,但它不起作用.

<xsl:variable name="topcall" select="//topcall"/>
<xsl:variable name="focusedcall" select="//focusedcall" />

<xsl:variable name="firstcall" select="$topcall | $focusedcall"/>
Run Code Online (Sandbox Code Playgroud)

对于变量firstcall,我正在进行条件节点选择.如果有一个topcall然后分配给firstcall,其他人分配firstcallfocusedcall.

xslt xpath

5
推荐指数
2
解决办法
2148
查看次数

Perl - 无法为子类创建类变量

我正在创建一个具有基类的子类Net::SSH2.当我试图添加一个类变量时,我收到错误说 -

不是F:\ temp\fooA.pl第17行的HASH引用.

如果我做同样的事情Net::SSH2那么它工作正常.

这是代码:

use strict;

my $x = Foo->new();

package Foo;

use base qw (Net::SSH2);

sub new {
    my ($class, %args) = @_;

    my $self = $class->SUPER::new(%args);
    $self->{'key'} = 'value';
    bless $self, $class;
    return $self;
}
Run Code Online (Sandbox Code Playgroud)

perl

4
推荐指数
1
解决办法
179
查看次数

perl LibXML编写XML文档

我是XML世界的新手.我编写了以下代码来使用XML :: LibXML生成XML.我理解我似乎将命名空间视为属性,我觉得这是不正确的.我不知道该怎么做.所以寻求你的帮助,请纠正我的代码.

XML文档:

<RootDocument protocol="OCI" xmlns="C" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <sessionId xmlns="">172.24.160.8,31436753,1298637565495</sessionId>
    <command xsi:type="AuthenticationRequest" xmlns="">
    <userId>automation</userId>
    </command>
</RootDocument>
Run Code Online (Sandbox Code Playgroud)

Perl脚本:

my $ociRequest = XML::LibXML::Document->new( '1.0', 'utf-8' );

my $root = $ociRequest->createElement ('RootDocument');

$root->addChild ($ociRequest->createAttribute ( protocol => 'OCI' ) );
$root->addChild ($ociRequest->createAttribute ( xmlns => 'C' ) );

$root->addChild ($ociRequest->createAttribute ( 'xmlns:xsi' => 'http://www.w3.org/2001/XMLSchema-instance' ) );
#$root->setNamespace ('http://www.w3.org/2001/XMLSchema-instance', 'xsi', 0);
$ociRequest->setDocumentElement ($root);


my $session = $ociRequest->createElement ('sessionId');
$session->addChild ($ociRequest->createAttribute ( xmlns => '') );
$session->addChild($ociRequest->createTextNode($sessionID));
$root->addChild($session);

my $command = $ociRequest->createElement ('command');
$command->addChild ($ociRequest->createAttribute …
Run Code Online (Sandbox Code Playgroud)

xml perl

3
推荐指数
1
解决办法
5835
查看次数

我们如何识别属于给定分布的所有模块

我们如何识别属于给定分布的所有模块.

例如,XML :: LibXML发行版提供了一组以下模块 https://metacpan.org/release/XML-LibXML

我们如何通过cpan/ppm或每个包的任何标准获得此列表.

实际上我们正在为用Perl编写的代码编写一个单元测试框架.要验证模块,我们需要一种方法来查找给定模块名称的分发名称.

perl

3
推荐指数
1
解决办法
174
查看次数

Selenium webdriver设计文件

我正在尝试为嵌入式设备用户界面(例如VoIP电话)编写自动化框架.这些设备具有不同的UI,但在逻辑上执行相同的操作.

经过我的分析,似乎就像是,我将开发一个类似于selenium webdriver的框架.Selenium webdriver适用于各种浏览器,而该框架适用于不同的嵌入式设备UI.

我试图了解selenium webdriver的实现.我已经完成了它的javadocs和源代码,但我觉得最好有一个设计文档.

如果您有链接,请告诉我.

感谢您的帮助!!

PS:我将在Python/Perl中开发这个框架.

selenium webdriver

3
推荐指数
1
解决办法
1351
查看次数