脚本的目的:我希望能够使用它将费用插入到SQLite数据库中,然后再制作自定义报告以提取信息,这样我就可以更好地预算我的费用.
我根本不明白这个错误代码.
perl6 budgetpro.p6
苹果
一天一苹果,医生远离我
嗨,我很精干,很高兴见到你,Eggman
Run Code Online (Sandbox Code Playgroud)Cannot resolve caller sqlite3_bind(DBDish::SQLite::Native::STMT, Int, Date); none of these signatures match: (DBDish::SQLite::Native::STMT $stmt, Int $n, Blob:D $b) (DBDish::SQLite::Native::STMT $stmt, Int $n, Real:D $d) (DBDish::SQLite::Native::STMT $stmt, Int $n, Int:D $i) (DBDish::SQLite::Native::STMT $stmt, Int $n, Any:U) (DBDish::SQLite::Native::STMT $stmt, Int $n, Str:D $d) in method execute at /home/jon/opt/rakudo-star/share/perl6/site/sources/2D749062AA6D5641452CDA214FC7C566E7E3E2A1 (DBDish::SQLite::StatementHandle) line 38 in method insert at budgetpro.p6 line 54 in block <unit> at budgetpro.p6 line 86`
2
3 use v6;
4 use DBIish;
5
6 constant DB …
Run Code Online (Sandbox Code Playgroud) 有什么callwith
和samewith
应该做什么?我认为callwith
应该运行与当前子例程相同名称的子例程,但使用我传递给它的参数.
来自文档:
对我来说,这听起来像是在两个arity MAIN
子程序(即MAIN($a,$b)
)中callwith($x)
调用MAIN($x)
.
但它没有:
multi MAIN ($a, $b) {
my $result = callwith("$a$b");
say "Got $result from MAIN(\$a)";
}
multi MAIN ($x) {
say "Hello $x";
return True;
}
Run Code Online (Sandbox Code Playgroud)
Run Code Online (Sandbox Code Playgroud)$ perl6 callwith.p6 foo bar Use of uninitialized value $result of type Any in string context. Methods .^name, .perl, .gist, or .say can be used to stringify it to something meaningful. in sub MAIN at …
System.Diagnostics.EventLog类提供了与Windows事件日志交互的方法.我一直用它来进行简单的记录......
System.Diagnostics.EventLog.WriteEntry("MyEventSource", "My Special Message")
Run Code Online (Sandbox Code Playgroud)
有没有办法使用.NET在生成的事件日志条目中设置用户信息?
我正在运行一个R脚本,使用生成PCA分析图FactorMineR
.
我想输出生成的PCA图的坐标,但是我找不到正确的坐标.我找到了results1$ind$coord
,results1$var$coord
但看起来都不像默认情节.
我找到了 http://www.statistik.tuwien.ac.at/public/filz/students/seminar/ws1011/hoffmann_ausarbeitung.pdf 和 http://factominer.free.fr/classical-methods/principal-components-analysis. html 但不描述PCA创建的变量的内容
library(FactoMineR)
data1 <- read.table(file=args[1], sep='\t', header=T, row.names=1)
result1 <- PCA(data1,ncp = 4, graph=TRUE) # graphs generated automatically
plot(result1)
Run Code Online (Sandbox Code Playgroud) dir
Python 2.7.x中的命令列出了模块中所有可访问的"符号".在Perl 5.x中是否有一个等价物来列出包中所有可访问的"符号"?
鉴于此程序:
#!/bin/env perl6
sub MAIN ($filename='test.fq', :$seed=floor(now) )
{
say "Seed is $seed";
}
Run Code Online (Sandbox Code Playgroud)
当我在没有任何命令行参数的情况下运行它时,它可以正常工作。但是,当我给它的命令行参数时seed
,它的值是True
:
./seed.p6 --seed 1234
Seed is True
Run Code Online (Sandbox Code Playgroud)
为什么数字1234被解释为布尔值?
我正在尝试生成包含10个具有随机质量分数的随机序列的FASTQ文件.我最初使用以下代码,工作正常:
my @seq = (rand_fa_seq() for ^10);
my @qual = (rand_qual() for ^10);
@seq.perl.say;
@qual.perl.say;
sub rand_fa_seq
{
return join("", roll(20,"ACGT".comb));
}
sub rand_qual
{
return join("", roll(20,"EFGHIJ".comb))
}
Run Code Online (Sandbox Code Playgroud)
但是,想要进一步简化它,我想也许我可以从右手语句中删除括号.当我这样做,我只有在一个单一的元素@seq
和@qual
.
my @seq = rand_fa_seq() for ^10;
my @qual = rand_qual() for ^10;
@seq.perl.say;
@qual.perl.say;
sub rand_fa_seq
{
return join("", roll(20,"ACGT".comb));
}
sub rand_qual
{
return join("", roll(20,"EFGHIJ".comb))
}
Run Code Online (Sandbox Code Playgroud)
这是一个错误还是它应该表现的方式?如果没有括号,这是一个标量上下文吗?将在大名单重构改变这种行为?
我见过这种行为的Perl 6解释器的版本:
MoarVM:
基于MoarVM版本2015.03-60-g36d56f7构建的perl6版本2015.03-204-g8578022
JVM:
perl6版本2015.03-305-ga95107d建立在JVM java版本"1.7.0_79"
OpenJDK运行时环境(rhel-2.5.5.1.el7_1-x86_64 u79-b14)
OpenJDK 64位服务器VM(版本24.79-b02,混合模式)
我不能在Perl 6中的类中调用私有方法:
class MyClass {
method !my-private-method($var1) {
# ....
}
method my-method() {
my $my-var1 = !my-private-method(123); # not found (Undeclared routines)
my $my-var1 = $!my-private-method(123); # not found (Undeclared routines)
my $my-var1 = $.my-private-method(123); # not found (Undeclared routines)
my $my-var1 = my-private-method(123); # not found (Undeclared routines)
Run Code Online (Sandbox Code Playgroud)
那我怎么打电话my-private-method
来my-method
?
我可以gist
在say
内置函数上调用该方法:
&say.gist
Run Code Online (Sandbox Code Playgroud)
Run Code Online (Sandbox Code Playgroud)sub say (| is raw) { #`(Sub|54790064) ... }
为什么我不能打电话gist
的while
?
&while.gist
Run Code Online (Sandbox Code Playgroud)
Run Code Online (Sandbox Code Playgroud)===SORRY!=== Error while compiling <unknown file> Undeclared routine: while used at line 1
显然while
不是"常规"而是say
.但我认为Perl 6中的所有内置函数都是我们可以重新定义的函数.
这是我可以找到定义的情况,但我不太了解它.从官方文档:
瞬间是以原子秒为单位测量的特定时刻,具有分数.它不依赖或意识到任何时代.
我不明白如何在没有时代的情况下指定特定时刻?它没有参考点吗?在两台不同的Linux机器上,似乎两个Instants都提到自POSIX Epoch以来的几秒钟.我的猜测是Instants确实有一个有效的开始时间,但是开始时间是依赖于实现/设备的.
# machine1
say(now * (1/3600) * (1/24) * (1/365.25)); # years from zero point
46.0748226200715
# machine2
say(now * (1/3600) * (1/24) * (1/365.25)); # years from zero point
46.0748712024946
Run Code Online (Sandbox Code Playgroud)
无论如何,我的问题是,可以依赖Instants在不同进程之间保持一致,还是只用于"内部"使用?