perl

    2热度

    1回答

    我在编写Perl脚本时,出现了一个问题,只是出于好奇。我注意到,当我创建一个对象而不将它分配给任何变量(标量/数组/散列)时,不会出现任何警告或错误。 例如: Person->new ('Sebastian', 'Vettel', 30); 的MCVE如下。 use strict; use warnings; package Person; sub new { my $cla

    2热度

    1回答

    我已经开始学习perl,并且遇到了一些问题。那里可能有不同格式的日期可以作为输入。我必须按照时间顺序对这些日期进行排序。 我计划将单日期格式中的每个日期进行转换,并将其作为日期以常见格式(作为关键字)和日期原始给定格式(作为值)存储在散列表中。现在运行排序的散列和输出中的原始格式(散列值)打印日期。 但是怎么做呢?我找到了一种将日期转换为另一种格式的格式,如下所示。 use Time::Piece

    0热度

    1回答

    我想找出如何做到这相反: Perl - How can I turn a hash into a query string? 我有一个字符串化的查询字符串的形式,并希望将其转换为一个哈希值。 随着更多的上下文,客户端传递一些URL参数作为字符串化的查询形式,这是base64编码,我想解码,变成一个哈希,添加一些更多的自定义URL参数的哈希,然后我有一个方法已经转换回字符串并附加到URL。 my $

    1热度

    1回答

    我试图将Linux上的网络接口配置文件列表加载到散列哈希中,并将它们进一步编码为JSON。这是我使用的代码: #!/usr/bin/env perl use strict; use diagnostics; use JSON; use Data::Dumper qw(Dumper); opendir (DIR, "/etc/sysconfig/network-scripts/");

    1热度

    1回答

    我的问题很简单。我必须从散列中打印一些键值对。我尝试了两种不同的方法: 方法 #Fill hash from file ($fh has been defined previously) while(my $line = <$fh>) { $counter{$line}++; } foreach (my($k, $v) = each %counter){ my ($p

    4热度

    1回答

    我正在寻找一种在Perl中实现读/写锁的好方法。 这需要同步来自Windows和Unix上不同Perl线程和/或进程的文件访问。 试过Fcntl :: flock这对我来说是完美的,如果它按预期工作。不幸的是,它看起来像在压力下,flock允许在另一个线程中设置锁定已经锁定的文件。 看着一些CPAN模块,但大多数都是用群集来实现的。 接下来,我打算评估针对Windows的fcntl for Uni

    -1热度

    3回答

    我有这样的bash/awk的代码来处理主机 $ echo 'the.pattern to change' | awk '{sub(/the./,"")}{print $1}' pattern 我需要通过Perl来代替AWK在Perl打印列。 任何想法如何用perl oneliner替换声明的第二部分?

    4热度

    1回答

    这让我疯狂!我有一个脚本需要创建一个随机ID,以便该文件可以重命名。下面是测试我有: for (my $i = 0; $i <= 100; $i++) { my $test = rand_id(); print "FOO: $test\n"; } sub rand_id { # Used for the file names (not temp_id, for new

    3热度

    1回答

    在我正在开发的一个Perl程序中,用户可以指定一个要加载的Perl模块,这个模块有望定义一对(可变数量)的变量。 Perl程序然后处理这些变量,基本上把这个包看作是一个普通的散列,只不过这些值都在一个名称空间中。这样做能正常工作,即,该程序打印“2”: use strict; use warnings; package P { my $k1 = 'v1'; my $k2

    1热度

    1回答

    我有一个在Ubuntu中运行的脚本,但是我想在Windows中运行它。我知道如何执行它,我只是不知道我的脚本有什么问题不让它运行。 #!/usr/bin/perl use strict; use warnings; use IO::Compress::Zip qw(zip $ZipError); use File::Find; my @files = <C:\Windows\*.lo