小编sim*_*que的帖子

Perl Excel::Writer::XLSX

我正在尝试使用 perl 脚本创建一个 excel 文件。
我按照教程编写了以下代码:

#!/usr/bin/perl

use strict;
use warnings;
use Excel::Writer::XLSX;
use Excel::Writer::XLSX::Utility;

my $workbook = Excel::Writer::XLSX->new( 'perl.xlsx' );    # Step 1
$worksheet = $workbook->add_worksheet('cc');                   # Step 2
$worksheet->write( 'A1', 'Hi Excel!' );  
Run Code Online (Sandbox Code Playgroud)

但我收到以下错误:

Global symbol "$worksheet" requires explicit package name at test_excel.pl line 10.
Global symbol "$worksheet" requires explicit package name at test_excel.pl line 11.
Run Code Online (Sandbox Code Playgroud)

perl excel-writer-xlsx

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

直接访问perl中的嵌套JSON数据?

我不熟悉Perl的哈希/引用语法,它让我的眼睛受伤了.
我有以下JSON:

{
  "Arg":"Custom_Light state alias protocol",
  "Results": [
  {
    "Name":"Custom_Light",
    "Internals": { },
    "Readings": {
      "protocol": { "Value":"V3", "Time":"2017-01-14 18:49:18" },
      "state": { "Value":"off", "Time":"2017-03-05 10:39:50" }
    },
    "Attributes": {      "alias": "Kitchen light" }
  }  ],
  "totalResultsReturned":1
}
Run Code Online (Sandbox Code Playgroud)

如何直接获取Reading> Protocol Value和Reading> state Value以及Attributes> Alias?

我使用默认JSON编码器/解码器,它的工作非常出色.使用Dumper($json)我获取所有JSON,但我不知道如何直接访问它而不使用foreach与数组中的所有数组.

我尝试过以下方法:

my $json = from_json( $readout, { utf8  => 1 } );
print "No. Entries:", scalar(keys($json)); #works, returns 3
my @results = %$json{Results};
Dumper(@results[1]); #I get the Results array
Run Code Online (Sandbox Code Playgroud)

从这里开始它已经很难看了.在那 …

arrays perl hash json

-1
推荐指数
1
解决办法
562
查看次数

使用perl转储yaml文件

我试图以特定格式转储yaml文件,如下所述; 如果我必须转储下面的内容,我该如何定义我的哈希值(%database)?

-name:Fred

 Language:python

-name:Barney

 Language:perl

-name: Betty

 Language:java

-name:Wilma

 Language:ruby

open  FILE, '>>', "database.txt";

print FILE Dump(\%database);
Run Code Online (Sandbox Code Playgroud)

perl yaml

-1
推荐指数
1
解决办法
1022
查看次数

在具有Perl值的散列中查找第一个键值对

我有一个哈希.

        '20111124' => undef,
        '20111125' => undef,
        '20111129' => undef,
        '20111130' => '126002',
        '20111201' => '126002',
        '20111202' => '126002',
        '20111205' => '126002',
        '20111206' => '126002',
        '20111207' => '126002'
Run Code Online (Sandbox Code Playgroud)

我想得到第一个有价值的键.

我已经尝试迭代哈希,但由于哈希有时很大,获得第一个具有定义值的键的最快方法是什么?

perl hash

-1
推荐指数
1
解决办法
748
查看次数

JSON字符串和PERL

如何在没有"headers"的情况下读取这样的JSON字符串:

[{"SMS":"hello","NUM":12345},{"SMS":"bye","NUM":54321}]
Run Code Online (Sandbox Code Playgroud)

my $json = JSON->new->utf8;
my $perl_data = $json->decode($content);
print ref($perl_data) . "\n";
Run Code Online (Sandbox Code Playgroud)

返回ARRAY.我想要每个元素.

谢谢

perl json

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

更快速地在perl中逐行读取文件

我必须使用perl逐行读取一个大的unix文件.如果是大文件,脚本运行时间超过2分钟,但是对于小文件则需要较少的时间.

我使用以下代码:

open(FILE , "filename");

while ( < FILE > ){ 

}
Run Code Online (Sandbox Code Playgroud)

请让我知道一种更快地解析文件的方法

perl

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

在Perl中按字母顺序排列

这是我的提示:编写一个Perl程序,从命令行读取任意数量的字符串,并按字母顺序显示它们.这就是我所拥有的:

#!/usr/bin/perl 
use strict;
use warnings;

# read command line arguments


# verify correct input and display error and quit if input is valid
# (1) quit unless we have the correct number of command-line args
my $numargs = string $num_args = $#ARGV + 1;
if ( $num_args != 2 ) {

   exit;
}
if ( $num_args > 2 ) {
   my $num_args eq string
     print "Enter multiple random strings of letters, separated by spaces: ";
   exit;
}


# (2) …
Run Code Online (Sandbox Code Playgroud)

perl

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

标签 统计

perl ×7

hash ×2

json ×2

arrays ×1

excel-writer-xlsx ×1

yaml ×1