小编dax*_*xim的帖子

如何获取包含元素标记的XML节点的整个内部内容?

使用XML::Twig,有没有办法获取节点的整个HTML?我不想要节点的文本,而是整个HTML标签和所有.

输入XML

<content> <p>blah blah <b> bla bla </b> </p>
<p> line 2 <i> test </i? </p>
</content>
Run Code Online (Sandbox Code Playgroud)

my $twig = new XML::Twig(
    TwigRoots    => {'content' => 1},
    TwigHandlers => $twig_handlers
);
my $twig_handlers = {'count/p' => \&count_ps};

sub count_ps {
    my ($twig, $test) = @_;
    $Data .= $test->text();
}
Run Code Online (Sandbox Code Playgroud)

$data 应该告诉我整个HTML.

perl xml-twig

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

当文本不存在于另一个文件中时,使用grep过滤以进行打印

我有一个linux过滤器来从xcode项目中提取包含本地化字符串的所有行,并生成一个排序的唯一条目列表.过滤器工作正常,如下所示.

grep NSLocalized *.m | perl -pe 's/.*NSLocalizedString\((.+?)\,.*/$1/' | sort | uniq 
Run Code Online (Sandbox Code Playgroud)

结果是一个看起来像这样的字符串列表

@"string1"
@"string2"
etc
Run Code Online (Sandbox Code Playgroud)

我现在需要做的是识别另一个文本文件中不存在的条目.所以想象我有一个包含的文本文件;

@"string1"
@"string3"
etc
Run Code Online (Sandbox Code Playgroud)

结果将是@"string2"因为它不存在于文件中

为了参数,该文件名为list.txt

我需要添加到我的过滤器中?我敢肯定我可以用grep做到这一点,但我的大脑失败了!

linux perl grep filter

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

我用什么来将CSV数据显示为图表?

我有一组存储在文本文件中的数据,我现在通过Perl将其放入CSV文件中.现在需要在图表中显示有问题的数据.

这样做有什么建议吗?建议使用XML,但XML无法将数据放入图表本身.

理想情况下会发生这样的情况:数据将从文本文件中解码,放入Excel电子表格并显示为图表,所有这些都包含一位代码,因为其中有许多文本文件包含数据.

Perl,XML,C,C++,C#和VB都可以使用.

xml csv excel perl charts

4
推荐指数
2
解决办法
1529
查看次数

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

切换时,文件测试在给定的...中使用`$ _`或`_`?

使用文件测试操作符时,stat()结果将缓存在中,_因此,如果要执行多个测试,则无需执行更多系统调用.

if (-f $file_) {
  say 'readable' if -r _;
  say 'writable' if -w _;
}
Run Code Online (Sandbox Code Playgroud)

如果我在a中使用它们given…when,他们会使用_$_吗?

given ($file) {
  when (! -f) {}
  when (-r) {say 'readable';continue}
  when (-w) {say 'writable';continue}
  ....
}
Run Code Online (Sandbox Code Playgroud)

我觉得这会使用$_.真的吗?此外,因为given…when没有默认的直通,所以有必要使用continue以查看其他匹配.

可能这种情况可以通过ifs 更好地解决,并且使用比使用该given…when方法更少的类型.但是,given…when在重构软件时,看起来是否合适是很诱人的.;-)

perl

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

为什么 PDF 在使用 Email::MIME 通过 SMTP 邮寄后会损坏/无法读取?

我按照Email::SenderEmail::MIME中的示例进行操作,看起来不错,直到您尝试打开 PDF。然后很明显它的大小比原来的要小并且不知何故损坏了。我的脚本或多或少是出于测试目的而给出的示例的模板副本,但我担心 MIME 内容在这里不起作用。

use strict;
use warnings;

use Data::Dumper;
use IO::All ;

use Email::Simple;
use Email::Simple::Creator;

use Email::MIME;

use Email::Sender::Simple qw(sendmail);
use Email::Sender::Transport::SMTP;

# assemble the parts
my @parts = (
    Email::MIME->create(
        attributes => {
            filename     => "report.pdf",
            content_type => "application/pdf",
            encoding     => "quoted-printable",
            name         => "report.pdf",
        },
        body => io("report.pdf")->all
    ),
    Email::MIME->create(
        attributes => {
            content_type => "text/plain",
            disposition  => "attachment",
            charset      => "US-ASCII",
        },
        body => "Hello there!",
    ),
);

# assemble parts into …
Run Code Online (Sandbox Code Playgroud)

email perl mime smtp multipart

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

如何在Android脚本层(SL4A)上安装Perl模块?

我刚安装了SL4A来测试我的摩托罗拉里程碑上的Perl.有没有办法安装模块?我需要LWP :: Simple.

perl module sl4a

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

如何查找名称可能超过预期名称的文件?

我正在做一些测试,我有很多文件需要进行数据分析.我们的文件有一个命名约定,但有时会有人添加一些文件名.我正在寻找一种方法来寻找名称的"核心",然后保存整个文件名.

例如,我想找WIRA_Rabcd_RT,但有人可能已将文件名保存为RED_GREEN_BLUE_WIRA_Rabcd_RT.txt,所以我的文件夹看起来像这样:

RED_GREEN_BLUE_WIRB_Rabcd_RT.txt
RED_GREEN_BLUE_WIRC_Rabcd_RT.txt
RED_GREEN_BLUE_WIRA_Rabcd_RT.txt ? I want to find this file, and open it.
RED_GREEN_BLUE_WIRF_Rabcd_RT.txt
RED_GREEN_BLUE_WIRG_Rabcd_RT.txt
RED_GREEN_BLUE_WIRT_Rabcd_RT.txt
RED_GREEN_BLUE_WIRW_Rabcd_RT.txt
RED_GREEN_BLUE_WIRQ_Rabcd_RT.txt
Run Code Online (Sandbox Code Playgroud)

regex perl search file

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

如何在Perl中创建目录?

我是Perl的新手并尝试编写文本文件.我可以将文本文件写入现有目录没问题,但最终我希望能够创建自己的目录.

我将从我的课程作品网站下载文件,我想将文件放在以课程命名的文件夹中.我不想事先手动为每个课程创建一个文件夹,我也希望最终与其他人共享该脚本,所以我需要一种方法来创建目录并根据HTML中的课程名称命名它们.

到目前为止,我已经能够使这个工作:

use strict;
my $content = "Hello world";
open MYFILE, ">C:/PerlFiles/test.txt";
print MYFILE $content;
close (MYFILE);
Run Code Online (Sandbox Code Playgroud)

test.txt不存在,但是C:/PerlFiles/并且假定打字>允许我创建文件,很棒.

但是,以下内容不起作用:

use strict;
my $content = "area = pi*r^2";
open MYFILE, ">C:/PerlFiles/math_class/circle.txt";
print MYFILE $content;
close (MYFILE);
Run Code Online (Sandbox Code Playgroud)

该目录C:/PerlFiles/math_class/不存在.

我也试过,sysopen但是在添加标志时出现错误:

use strict;
my $content = "area = pi*r^2";
sysopen (MYFILE, ">C:/PerlFiles/math_class/circle.txt", O_CREAT);
print MYFILE $content;
close (MYFILE);
Run Code Online (Sandbox Code Playgroud)

我从Perl Cookbook7.1章得到了这个想法.打开文件.它不起作用,我收到错误消息Bareword "O_CREAT" not allowed while "strict subs" …

perl file-io

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

在Perl中使用XPath

我试图使用Perl 复制我的C#/ XPath代码在Linux上的作用.我复制并粘贴了Perl和XML中的例8-6中的代码.如果我理解正确,我应该能够运行该Perl代码,将此代码放在终端中

xmlPerl.pl mydatafile.xml "/inventory/category/item/name"
Run Code Online (Sandbox Code Playgroud)

但是当我尝试运行Perl文件时,它不起作用.这是错误:

[root@Perl ~]# perl xmlPerl.pl
Can't locate XML/XPath.pm in @INC (@INC contains: /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi /usr/lib64/perl5/site_perl/5.8.7/x86_64-linux-thread-multi /usr/lib64/perl5/site_perl/5.8.6/x86_64-linux-thread-multi /usr/lib64/perl5/site_perl/5.8.5/x86_64-linux-thread-multi /usr/lib/perl5/site_perl/5.8.8 /usr/lib/perl5/site_perl/5.8.7 /usr/lib/perl5/site_perl/5.8.6 /usr/lib/perl5/site_perl/5.8.5 /usr/lib/perl5/site_perl /usr/lib64/perl5/vendor_perl/5.8.8/x86_64-linux-thread-multi /usr/lib64/perl5/vendor_perl/5.8.7/x86_64-linux-thread-multi /usr/lib64/perl5/vendor_perl/5.8.6/x86_64-linux-thread-multi /usr/lib64/perl5/vendor_perl/5.8.5/x86_64-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.8 /usr/lib/perl5/vendor_perl/5.8.7 /usr/lib/perl5/vendor_perl/5.8.6 /usr/lib/perl5/vendor_perl/5.8.5 /usr/lib/perl5/vendor_perl /usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi /usr/lib/perl5/5.8.8 .) at xmlPerl.pl line 3.
BEGIN failed--compilation aborted at xmlPerl.pl line 3.
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?我认为它与我的代码开头的XML和XPath名称有关.我是否需要安装一些东西才能使用XPath框架?我在RedHat 5.5上运行.

perl xpath

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

标签 统计

perl ×10

charts ×1

csv ×1

email ×1

excel ×1

file ×1

file-io ×1

filter ×1

grep ×1

linux ×1

mime ×1

module ×1

multipart ×1

regex ×1

search ×1

sl4a ×1

smtp ×1

xml ×1

xml-twig ×1

xpath ×1