小编Wak*_*nka的帖子

高级perl语法 - Mojo :: DOM

我正在尝试理解一些高级(对我来说)perl语法,用于在本教程后使用DOM进行html解析:

say "div days:";
say $_->text for $dom->find('div.days')->each;

say "\nspan hours:";
say $_->text for $dom->find('span.hours')->each;
Run Code Online (Sandbox Code Playgroud)

这个语法是什么意思?这是什么样的循环?建筑经典看起来像这样:for(i=0;i<10;i++){ code }不:{code} for (some_condition)

在这种情况下,"each"关键字的含义是什么?它是否与eachPerl内置函数有共同之处,或者它是否特定于Mojo :: DOM?我想如果each是在Mojo :: Dom下,应该在Mojo :: DOM主页上提及它.但是我没有each他们网站方法部分找到任何提及,所以它必须是Perl的内置函数.但是,这个内置each函数有一个完全不同的语法 - 这怎么可能?

教程页面的另一个例子

say "Open Times:";
say for $dom->find('div.openTime')
            ->map(sub{$_->children->each})
            ->map(sub{$_->text})
            ->each;
Run Code Online (Sandbox Code Playgroud)

与上述mapsub方法相同的问题.

  • 那些"Perlish"代码可以用更"C风​​格"的方式重写,以便我能理解吗?
  • 最重要的是:如何列出所有方法的参数和返回Mojo :: DOM中包含的值?它必须以某种方式完成,因为我读到即使对于Perl,也有IDE具有intellisense(自动完成),因此这个IDE必须知道方法返回值类型等.

syntax perl dom html-parsing mojolicious

3
推荐指数
2
解决办法
1453
查看次数

Perl - 关于解除引用的正确语法的两个问题

作为一个新手,我正在尝试使用atlanta perl mongers的这种材料来探索perl数据结构,这里有可用的Perl数据结构

下面是我writen示例代码,01.pl是一样的02.pl,但01.pl包含了两个额外的编译指示:use strict; use warnings;.

#!/usr/bin/perl

my %name = (name=>"Linus", forename=>"Torvalds");
my @system = qw(Linux FreeBSD Solaris NetBSD);

sub passStructure{
  my ($arg1,$arg2)=@_;

  if (ref($arg1) eq "HASH"){
    &printHash($arg1);
  }
  elsif (ref($arg1) eq "ARRAY"){
    &printArray($arg1);
  }

  if (ref($arg2) eq "HASH"){
    &printHash($arg2);
  }
  elsif (ref($arg2) eq "ARRAY"){
    &printArray($arg2);
  }
}

sub printArray{
  my $aref = $_[0];

  print "@{$aref}\n";
  print "@{$aref}->[0]\n";
  print "$$aref[0]\n";          
  print "$aref->[0]\n";
}

sub printHash{
  my $href = $_[0];

  print …
Run Code Online (Sandbox Code Playgroud)

syntax perl dereference

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

VIM - 解释'正常'和'全局'命令

有人可以澄清一下global(:h :g)和norm(:h norm)命令在VIM中是如何工作的吗?我有档案:

1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
G
H
Run Code Online (Sandbox Code Playgroud)

我已发布:g/[0-9]/norm 4gg dd希望它能在以下方面起作用:

  1. [0-9] =仅匹配带数字的行
  2. 4gg =跳到第4行
  3. dd =删除当前(第4行)

所以我期待这个:

1
2
3
5
6
7
8
9
A
B
C
D
E
F
G
H
Run Code Online (Sandbox Code Playgroud)

但我得到的不是:

1
2
3
4
A
B
C
D
E
F
G
H
Run Code Online (Sandbox Code Playgroud)

另外,如果我用它没关系norm或者norm!,有什么区别,可以请你解释我这是怎么工作或点我一些很好的参考,我已阅读:h :g:h :norm,但它并不能帮助.谢谢

PS:我可以使用,:4d但我感兴趣:g …

vim

3
推荐指数
2
解决办法
2569
查看次数

windbg的各种调试模式

我还想问一件事:在某处我读过windbg支持多种调试模式,其中一种模式是某种内核调试,系统正常运行,不等待windbg断点等.这是本地内核调试模式?此外,如果任何人可以非常简要地澄清非侵入性调试休眠模式之间的差异.我没有从MSDN中获取它.谢谢

debugging kernel windbg

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

使用python的多处理池和地图功能进行测量

以下代码我用于并行csv处理:

#!/usr/bin/env python

import csv
from time import sleep
from multiprocessing import Pool
from multiprocessing import cpu_count
from multiprocessing import current_process
from pprint import pprint as pp

def init_worker(x):
  sleep(.5)
  print "(%s,%s)" % (x[0],x[1])
  x.append(int(x[0])**2)
  return x

def parallel_csv_processing(inputFile, outputFile, header=["Default", "header", "please", "change"], separator=",", skipRows = 0, cpuCount = 1):
  # OPEN FH FOR READING INPUT FILE
  inputFH   = open(inputFile,  "rt")
  csvReader = csv.reader(inputFH, delimiter=separator)

  # SKIP HEADERS
  for skip in xrange(skipRows):
    csvReader.next()

  # PARALLELIZE COMPUTING INTENSIVE OPERATIONS - …
Run Code Online (Sandbox Code Playgroud)

python csv parallel-processing multithreading python-multiprocessing

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

如何在 Marp 或 Marpit 中将图像对齐到文本标题下方

我通过 VScode 使用 Marpit。这是 mi 最小工作示例:

---
marp: true
---

This should go in to the header and picture should be bellow it, but right now it is the middle of the picture

![bg contain](https://csgeekshub.com/wp-content/uploads/2020/07/C-Program-compilation-steps-and-process.jpg)

Run Code Online (Sandbox Code Playgroud)

这段代码的问题是它生成的幻灯片中文本和图像居中对齐,如下图所示:

在此输入图像描述

我希望将文本作为标题而不是交叉图像。

我怎样才能实现这个目标?

html css markdown marpit marp

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

perl嵌套哈希多种排序

我有这样的结构(散列哈希):

$VAR1 = {
          'Lee2000a' => {
                'abstract' => 'Abstract goes here',
                'author' => 'Lee, Wenke and Stolfo, Salvatore J'
                'title' => 'Data mining approaches for intrusion detection'
                'year' => '2000'
              },
          'Forrest1996' => {
                'abstract' => 'Abstract goes here',
                'author' => 'Forrest, Stephanie and Hofmeyr, Steven A. and Anil, Somayaji'
                'title' => 'Computer immunology'
                'year' => '1996'
                }
        };
Run Code Online (Sandbox Code Playgroud)

我想根据三个条件(按此顺序)对此结构进行排序:

第1个 - 按年份值(1996,2000)第2个 - 根据"外部"(Lee2000a,Forrest1996)结构键第3个 - 根据"内部"结构键(摘要,作者,标题,年份)按照alpahabetical顺序.

到目前为止,我有两个代码,我需要以某种方式结合:

I.代码符合第2和第3标准

for $i (sort keys(%bibliography)){
   print "$i => ", "\n";
   for …
Run Code Online (Sandbox Code Playgroud)

perl hashtable

2
推荐指数
1
解决办法
2695
查看次数

matplotlib中的层次结构

根据这篇文章,所有内容都按matplotlib层次结构组织.层次结构的顶部matplotlibmatplotlib.pyplot模块提供的"状态机环境" .在此级别,简单函数用于将绘图元素(线条,图像,文本等)添加到当前图形中的当前轴.层次结构中的下一级是面向对象的接口的第一级,其中pyplot仅用于诸如图形创建之类的一些功能,并且用户明确地创建并跟踪图形和轴对象.在此级别,用户使用pyplot创建图形,通过这些图形,可以创建一个或多个轴对象.然后,这些轴对象用于大多数绘图操作.还有其他术语,如图,轴,轴,艺术家(有很好的图片解释了所有这些,在提到的页面上).综上所述:

  1. 一切都属于matplotlib.pyplot模块
  2. 图 - 跟踪所有儿童轴,一小部分"特殊"艺术家(头衔,人物传说等)
  3. 轴 - 具有数据空间的图像区域 - 属于图
  4. 轴 - 标记刻度线(x,y,z坐标等)的字符串 - 属于Axes
  5. 艺术家 - 你可以在图上看到的一切(甚至是图,轴和轴对象) - 属于图

创建新图的最简单方法是使用pyplot:

fig = plt.figure()  # an empty figure with no axes
fig, ax_lst = plt.subplots(2, 2)  # a figure with a 2x2 grid of Axes
Run Code Online (Sandbox Code Playgroud)

我经常看到这两种方法可以互换使用,我希望它们基本上是等价的.但是我无法fig, ax = plt.subplots()使用fig = plt.figure()和得到的结果相同ax = fig.add_subplot(111, projection='3d')

以下是我的实验,用于plt.figure():

In [1]: from …
Run Code Online (Sandbox Code Playgroud)

python plot matplotlib

2
推荐指数
1
解决办法
1669
查看次数

函数返回总是布尔值False

我有以下功能:

Function IsInArray(ByVal needle As String, haystack() As String) As Boolean
  Dim element As Variant
  For Each element In haystack
    If element = needle Then
      IsInArray = True
    End If
  Next element
  IsInArray = False
End Function
Run Code Online (Sandbox Code Playgroud)

我通过这个子程序调用的是:

Sub CallIsInArray()
  Dim haystack(1 To 4) As String
  haystack(1) = "T1"
  haystack(2) = "T2"
  haystack(3) = "T3"
  haystack(4) = "T4"

  Dim needle As String
  needle = "T1"  ' Should return True but instead of it return False
  ' needle = "T1x" ' …
Run Code Online (Sandbox Code Playgroud)

excel vba excel-vba

2
推荐指数
1
解决办法
384
查看次数

pyPdf如何理解文档边界?

在这里,我找到了用于拆分pdf页面的代码。

#!/usr/bin/env python
import copy, sys
from pyPdf import PdfFileWriter, PdfFileReader
input = PdfFileReader(sys.stdin)
output = PdfFileWriter()
for p in [input.getPage(i) for i in range(0,input.getNumPages())]:
    q = copy.copy(p)
    (w, h) = p.mediaBox.upperRight
    p.mediaBox.upperRight = (w/2, h)
    q.mediaBox.upperLeft = (w/2, h)
    output.addPage(p)
    output.addPage(q)
output.write(sys.stdout)
Run Code Online (Sandbox Code Playgroud)

如果一个页面包含四个其他页面,例如:

+-------+-------+
|   1   |   2   |
|-------+-------|
|   3   |   4   |
+-------+-------+
Run Code Online (Sandbox Code Playgroud)

然后,代码会将其拆分为两页(按此顺序),其中包含另外两页:

+-------+-------+
|   3   |   4   |
+-------+-------+

+-------+-------+
|   1   |   2   |
+-------+-------+
Run Code Online (Sandbox Code Playgroud)

您可以例如在以下文档上进行测试。如果我正确理解upperRightupperLeft(和其他)在代码提及的变量,那么这是通过pyPdf所看到的文档表示: …

python pdf

2
推荐指数
1
解决办法
532
查看次数