小编smi*_*ith的帖子

用perl创建csv文件

我在windows上用这个perl模块Text :: CSV_XS创建了csv文件:

在我的代码片段下面:

use Text::CSV_XS;

my @a =('ID','VALUE'); 


open my $OUTPUT,'>',"file.csv" or die "Can't able to open file.csv\n";

my $csv = Text::CSV_XS->new ({ binary => 1, eol => $/ });



$csv->print($OUTPUT,\@a);
Run Code Online (Sandbox Code Playgroud)

这段代码生成了一个file.csv,但是当我尝试用xls打开file.csv时,xls会写这个文件是SYLK并且无法知道有人可以帮助为什么这个csv无法用xls打开?

perl

9
推荐指数
1
解决办法
2504
查看次数

Perl6安装模块

Perl6 Rakudo发行版中是否有任何命令列出了系统中所有已安装的模块?

我尝试了以下命令:

 p6doc NativeCall
Run Code Online (Sandbox Code Playgroud)

并得到以下错误:

===SORRY!===
Cannot invoke this object (REPR: Uninstantiable)
Run Code Online (Sandbox Code Playgroud)

但是当我写一个包含以下内容的p6文件时:

use  NativeCall;
Run Code Online (Sandbox Code Playgroud)

它编译没有问题.

如何浏览这样的Perl 6模块(如perl 5的perldoc)以及如何列出所有已安装的Perl 6模块?

perl6

9
推荐指数
2
解决办法
363
查看次数

是否有支持SSL/TLS的核心Perl模块?

Perl是否通过核心模块支持SSL/TLS?

我正在使用HTTP::Tiny并希望在https不安装任何库并依赖外部库和XS的情况下获取URL.

是否可以选择在HTTP::Tiny不依赖OpenSSL的情况下使用SSL,或者是否有任何纯粹的Perl模块可以在不需要XS模块的情况下使用SSL获取数据?

perl ssl https

9
推荐指数
1
解决办法
1242
查看次数

如何从Perl XS模块调用不同C源文件中的函数?

我正在用Perl构建一个XS扩展.我有两个文件:

  1. AC头文件(.h)
  2. AC源文件(.c)

目前我所做的是将所有C文件代码Model=放在XS文件之前并在之后包装我想要的函数Model=.

compliation没有问题,我可以从perl调用特定的函数.

但我想将.xs文件与C文件分开.

我希望.xs文件只包含wrap函数,这些函数将调用.c文件上的函数,但是当我这样做并运行dmake命令时,我得到错误代码129未定义引用'parse.c'文件.

我尝试使用C和OBJECT属性包含.c文件用于WriteMakerFile并仍然得到一个错误,任何想法如何将xs文件拆分为2个一个c文件和其他包含c函数的xs,它们是.c文件的一部分使用ExtUtils :: MakeMaker.

例子将不胜感激.

perl perl-module perl-xs

8
推荐指数
1
解决办法
616
查看次数

包含指针的NativeCall Struct

我有以下结构:

typedef struct _info{
  DWORD myInfo;
  BYTE  *pInfo;
  LPWSTR ExtData;

} Info;
Run Code Online (Sandbox Code Playgroud)

我用NativeCall这样表示这个结构:

class Info is repr('CStruct') {
    has int32 $.myInfo;
    has Pointer[int8] $.pInfo ; 
    has Pointer[int16] $.ExtData;
}
Run Code Online (Sandbox Code Playgroud)

这个表示好吗?如何访问和设置指向的数据$.pInfo

perl6 nativecall

7
推荐指数
1
解决办法
364
查看次数

使用Perl6打包和解包数据结构

在perl5上,如果有人想解析二进制文件,他有pack/unpack utiltiy,他可以将二进制结构转换为perl变量和副verca,

现在在perl6上有打包/解包的生产方式,从文档中我发现有Perl6的打包/解包方法,但它们是实验性的,

有没有人知道这些函数的状态,是否有替代解析二进制文件,其中包含perl6上的记录列表?

unpack pack perl6

7
推荐指数
1
解决办法
206
查看次数

如何在Mojolicious应用程序中从命令行获取凭据?

我正在开发一个Mojolcious独立应用程序.在代码中,我正在联系内部后端,用户应在其中提供一些凭据.

目前我使用代码中的凭据作为变量.它看起来像是这样的:

$password = 'somthing';
Run Code Online (Sandbox Code Playgroud)

我尝试使用配置插件在那里存储凭据,但有一个Mojolicious选项让用户在运行守护进程时提供他的凭据吗?也许喜欢:

perl myapp.pl daemon -user username -password password
Run Code Online (Sandbox Code Playgroud)

Mojolicious处理此用例的最佳策略是什么?

perl mojolicious

7
推荐指数
1
解决办法
225
查看次数

perl不一致的负零结果

我有以下代码:

my $m=0;
my $e =0 ;
my $g=0;

my $x=  sprintf( "%0.1f", (0.6*$m+ 0.7 * $e-1.5)*$g);

print $x; 
Run Code Online (Sandbox Code Playgroud)

当我运行脚本时,结果是-0.0而不是0.0有人可以解释为什么以及如何将其更改为0.0.

floating-point perl

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

File :: Find ::规则和文件分隔符

File::Find::Rule在Strawberry Perl Windows上使用.

当我运行以下代码时:

@files = File::Find::Rule->file()
                              ->in( $dir );
                              foreach my $file (@files){
                              say $file;
                              }
Run Code Online (Sandbox Code Playgroud)

我得到这种格式的文件列表:

C:\data\mydata\file/1.xls 
Run Code Online (Sandbox Code Playgroud)

而不是这种格式:

C:\data\mydata\file\1.xls
Run Code Online (Sandbox Code Playgroud)

可能是什么问题呢?

perl file-find

6
推荐指数
1
解决办法
266
查看次数

Promise对象内外的分号

当我运行以下代码时:

my $timer = Promise.in(2);
my $after = $timer.then({ say "2 seconds are over!"; 'result' });
say $after.result;  # 2 seconds are over
                    # result
Run Code Online (Sandbox Code Playgroud)

我明白了

2 seconds are over!
result
Run Code Online (Sandbox Code Playgroud)

如果我写的话,;内部的作用是什么?then

say "2 seconds are over!"; 'result';
Run Code Online (Sandbox Code Playgroud)

我收到以下错误?

WARNINGS:
Useless use of constant string "result" in sink context (line 1)
2 seconds are over!
Run Code Online (Sandbox Code Playgroud)

并不是 :

2 seconds are over!
result
Run Code Online (Sandbox Code Playgroud)

像第一个例子?

perl6 promise

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