我试图在Perl6中使用哈希,但是当我把一些假值(故意)放入其中时
say %key<fake_key>;
Run Code Online (Sandbox Code Playgroud)
我明白了
(Any)
但我希望程序能够像Perl5那样在这种情况下死亡,因为这意味着缺少重要的数据.
例如,
#!/usr/bin/env perl
use strict;
use warnings 'FATAL' => 'all';
use autodie ':all';
my %hash;
print "$hash{y}\n";
Run Code Online (Sandbox Code Playgroud)
截至5.26.1生产
Use of uninitialized value $hash{"y"} in concatenation (.) or string at undefined.pl line 8.
Command exited with non-zero status 255
Run Code Online (Sandbox Code Playgroud)
我怎样才能获得相当于use warnings 'FATAL' => 'all'
和use autodie qw(:all)
在Perl6?
我有一个数组:
my @e = <60.922 20.946 8.721 7.292 4.306 2.821 2.765 2.752 2.741 2.725>
Run Code Online (Sandbox Code Playgroud)
我想将数组中的每个元素除以最小值,但是
@e /= @e.min
Run Code Online (Sandbox Code Playgroud)
产生了单个元素,这是不正确的。
我已阅读https://docs.raku.org/type/Array但我不了解 Raku 的基本元素。
如何将数组中的每个项目除以相同的数字?
我希望能够在Perl6中运行具有可变数量参数的函数,但在通过https://docs.perl6.org/language/functions#Arguments阅读后,我看不出它是如何完成的.我看到其他语言的链接很多,并且警告"类似标题的问题经常被低估"但我在文档或StackOverflow中没有看到这一点.
我想做这样的事情:
some-test($v1, $v2)
Run Code Online (Sandbox Code Playgroud)
要么
some-test($v3)
Run Code Online (Sandbox Code Playgroud)
但没有multi
为每个使用单独的功能
如何构造一个接受可变数量字符串的Perl6子程序?
I'm trying to apply a text substitution to an entire array.
However, when I try to alter the array, it shows that it only has 1 element, when it should have 26.
An example below in Perl6 REPL:
> my @a = 'a'..'z'
[a b c d e f g h i j k l m n o p q r s t u v w x y z]
> my @a1 = @a.subst(/<[aeiou]>/, 1, :g)
[1 b c d …
Run Code Online (Sandbox Code Playgroud) 我这样打开 raku/rakudo/perl6 :
con@V:~/Scripts/perl6$ perl6
To exit type 'exit' or '^D'
>
Run Code Online (Sandbox Code Playgroud)
上面的环境是不是就叫做“解释器”呢?我一直在寻找,但找不到它叫什么。
我怎样才能像我一样执行 rakudo 脚本
source('script.R')
在 R 中,还是exec(open('script.py').read())
在 python3 中?
澄清一下,我希望脚本中的函数和库可以在 REPL 中使用,但这run
似乎不行。
我确信这存在于某个地方的文档中,但我找不到它:(
我试图在Perl6中逐行读取一个巨大的gz文件.
我正在尝试做这样的事情
my $file = 'huge_file.gz';
for $file.IO.lines -> $line {
say $line;
}
Run Code Online (Sandbox Code Playgroud)
但是这给出了错误,即我有一个格式错误的UTF-8.我无法看到如何从帮助页面https://docs.perl6.org/language/unicode#UTF8-C8或https://docs.perl6.org/language/io阅读gzip资料
我想完成与Perl5相同的事情:http://blog-en.openalfa.com/how-to-read-and-write-compressed-files-in-perl
如何在Perl6中逐行读取gz文件?
谢谢
我试图将写得非常慢的哈希写入数据文件,但我不确定Perl6与Perl5相比如何做到这一点.这是一个类似的问题在Perl 6中的文件中存储中间数据,但我不知道如何使用那里写的任何东西,特别是messagepack.
我想看看Perl6相当于
my %hash = ( 'a' => 1, 'b' => 2, 'c' => 3, 'd' => 4);
use Storable;
store \%hash, 'hash.pldata';
Run Code Online (Sandbox Code Playgroud)
然后阅读
my $hashref = retrieve('hash.pldata');
my %hash = %{ $hashref };
Run Code Online (Sandbox Code Playgroud)
这是内置于Perl5,它非常简单,我不需要安装任何模块(我喜欢它!),但我怎么能在Perl6中做到这一点?我在手册中没有看到它.他们似乎在用https://docs.perl6.org/routine/STORE谈论其他事情STORE
我试图在Perl6中创建一个数组,该数组具有两个与Perl5中相同的范围:
my @cols = (3..9, 11..16);
use Data::Printer:from<Perl5>;
p @cols; exit;
Run Code Online (Sandbox Code Playgroud)
但是,这将创建一个二维数组
[
[0] [
[0] 3,
[1] 4,
[2] 5,
[3] 6,
[4] 7,
[5] 8,
[6] 9
],
[1] [
[0] 11,
[1] 12,
[2] 13,
[3] 14,
[4] 15,
[5] 16
]
]
Run Code Online (Sandbox Code Playgroud)
应该是一维数组,就像(3..9, 11..16)
在Perl5中那样:
[
[0] 3,
[1] 4,
[2] 5,
[3] 6,
[4] 7,
[5] 8,
[6] 9,
[7] 11,
[8] 12,
[9] 13,
[10] 14,
[11] 15,
[12] 16,
[13] 17,
[14] …
Run Code Online (Sandbox Code Playgroud) 我正在尝试安装Perl6:
perl Configure.pl --backend=jvm --gen-nqp
Run Code Online (Sandbox Code Playgroud)
再传统make
&make install
后者 - 其中大部分都会出现此错误:
== Installing modules for JVM
cd modules/zef && sh -c "PATH='/illumina/runs/Scripts/perl6/rakudo-star-2018.10/install/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/illumina/runs/RNASeq/stringtie-1.3.3b.Linux_x86_64:/illumina/runs/RNASeq/subread-1.6.0-Linux-x86_64/bin:/illumina/runs/RNASeq/STAR-master/bin/Linux_x86_64:/illumina/runs/RNASeq/hisat2-2.1.0:/home/703404669/Scripts/vcftools-vcftools-ea875e2/src/cpp:/illumina/runs/RNASeq/FastQC:/home/703404669/.local/bin:/home/703404669/bin' /illumina/runs/Scripts/perl6/rakudo-star-2018.10/install/bin/perl6-j -Ilib bin/zef install ."
===SORRY!===
Error while compiling op nativecallinvoke, no registered operation handler
make: *** [modules-install-j] Error 1
Run Code Online (Sandbox Code Playgroud)
我仍然是Perl6的新手,我不知道如何处理这个错误,它不会出现在搜索引擎上.
如何通过此错误安装perl6?
我有大量的数组哈希
%qual<discordant>
(约13199个值,例如“ 88.23”,“ 99.23”等。
范围是88-100,并且是从文本文件中读取的,
当我打印时%qual<discordant>.min
,%qual<discordant>.max
我可以看到这些值显然是错误的。
我可以通过更改从文本文件读取数据的方式来解决此问题:
%qual{$type}.push: @line[5]
至
%qual{$type}.push: @line[5].Num
但这不是直观的,这花了我几分钟的时间弄清楚为什么Raku / Perl6最初给出的答案显然是错误的。错过此错误非常容易。在perl5中,默认行为是无论如何都将这些字符串视为数字。
应该有一些控制语句使它成为默认行为,我该怎么做?