小编ben*_*kah的帖子

为什么Perl变量需要以$,%,@(sigils)开头?

为什么Perl变量需要以不同的字符(sigils)开头?

  • 标量变量以 $

  • 哈希开头 %

  • 数组开始于 @

他们为什么喜欢这个?

variables perl

23
推荐指数
5
解决办法
7553
查看次数

如何创建内部(私有)Moose对象变量(属性)?

我想要一些属性(也许这是在这种情况下这是错误的术语)是私有的,也就是说,只有内部用于对象使用 - 不能从外部读取或写入.

例如,考虑一些内部变量,它计算调用任何一组方法的次数.

我应该在哪里以及如何定义这样的变量?

perl moose

18
推荐指数
3
解决办法
5864
查看次数

流浪错误"无法找到框'hashicorp/precise32'..."windows 10下载程序退出状态3221225781

我在Windows 10上收到此错误:

The box 'hashicorp/precise32' could not be found or
could not be accessed in the remote catalog. If this is a private
box on HashiCorp's Atlas, please verify you're logged in via
`vagrant login`. Also, please double-check the name. The expanded
URL and error message are shown below:

URL: ["https://atlas.hashicorp.com/hashicorp/precise32"]
Error:
Run Code Online (Sandbox Code Playgroud)

请注意,没有扩展的错误消息,这使得它与已发布的其他类似问题不同.它也有不同的解决方案.

vagrant-windows

11
推荐指数
1
解决办法
2137
查看次数

为什么在使用命名空间时,XML :: LibXML没有为此xpath查询找到节点

我正在尝试使用XPath查询选择一个节点,我不明白为什么XML :: LibXML在有xmlns属性时找不到该节点.这是一个演示此问题的脚本:

#!/usr/bin/perl

use XML::LibXML; # 1.70 on libxml2 from libxml2-dev 2.6.16-7sarge1 (don't ask)
use XML::XPath;  # 1.13
use strict;
use warnings;

use v5.8.4; # don't ask

my ($xpath, $libxml, $use_namespace) = @ARGV;

my $xml = sprintf(<<'END_XML', ($use_namespace ? 'xmlns="http://www.w3.org/2000/xmlns/"' : q{}));
<?xml version="1.0" encoding="iso-8859-1"?>
<RootElement>
  <MyContainer %s>
    <MyField>
        <Name>ID</Name>
        <Value>12345</Value>
    </MyField>
    <MyField>
        <Name>Name</Name>
        <Value>Ben</Value>
    </MyField>
  </MyContainer>
</RootElement>
END_XML

my $xml_parser
    = $libxml ? XML::LibXML->load_xml(string => $xml, keep_blanks => 1)
    :           XML::XPath->new(xml => $xml);

my $nodecount = 0;
foreach …
Run Code Online (Sandbox Code Playgroud)

xml perl xpath libxml2

6
推荐指数
2
解决办法
6117
查看次数

如何使用perl中的系统警报来判断睡眠是否已实现?

perl文档中有许多地方警告不要将睡眠与警报结合使用,因为睡眠可以通过警报实现.但是,如果您的系统出现这种情况,则说明文档没有说明会出现什么症状.

我可以使用这个shell管道检测到这一点(来自其他问题的想法):

strace perl -e 'sleep 1' 2>&1 | grep 'sleep\|alarm'
Run Code Online (Sandbox Code Playgroud)

如果通过警报实现睡眠,您将在输出中看到警报系统调用.否则你会看到一个不同的睡眠系统调用,如下面的Ubuntu 10.04.2:

execve("/usr/bin/perl", ["perl", "-e", "sleep 1"], [/* 26 vars */]) = 0
nanosleep({1, 0}, 0xbfacba54)           = 0
Run Code Online (Sandbox Code Playgroud)

但是,我正在寻找简洁的纯perl代码(最好是一个衬垫)来检测它以及你应该看到的警报是否存在睡眠的基础以及如果没有睡眠会发生什么.

注意:

  • 这个问题并不是在寻找如何防止中断睡眠的警报.有人问过并回答过.
  • 不寻找通过警报实现睡眠的解决方法.也许你可以在另一个问题上提出并回答这个问题.
  • 这不是一个高尔夫问题.我不是在寻找最简洁的方式.
  • 我不会为任何生产代码做这个只是好奇心.

perl

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

标签 统计

perl ×4

libxml2 ×1

moose ×1

vagrant-windows ×1

variables ×1

xml ×1

xpath ×1