在 Raku 发行版中,我如何依赖Foo::Bar或Foo::Baz不依赖两者?
我在试验时注意到tr///,它似乎没有转换反斜杠,即使在转义时也是如此.例如,
say TR"\^/v"." given 'v^/\\';
say TR"\\^/v"." given 'v^/\\';
say TR"\ ^/v"." given 'v^/\\';
Run Code Online (Sandbox Code Playgroud)
所有这些都是输出 ...\而不是我的预期,....
还有一些其他奇怪的行为,比如\看似只是转义小写字母,但是文档页面没有太多信息...... \在音译(tr///)中反斜杠()的行为究竟是什么?
我的一些程序由两部分组成.首先,他们从文件中读取大量数据并对其进行转换,生成Arrays,Hashes,Objects等; 第二,他们用(总是不同的)用户定义的条件分析这些数据.第一部分保持不变(只要源数据没有更改),但有时每次运行程序时都需要相当长的时间才能工作,而且我通常需要使用相同的源数据多次运行它.拥有两个程序会好得多 - 其中一个程序(一次)读取数据并对其进行转换,而另一个程序则分析它(多次).
我的问题是:存储Arrays,Hashes和Objects 的最佳方法是什么,以便第一个程序将它们写入文件,第二个程序从该文件中读取它们?
我的本地分布如下:
.
??? META6.json
??? lib
??? Foo.pm6
Run Code Online (Sandbox Code Playgroud)
双方perl6 -I. -e 'use Foo;'并perl6 -Ilib -e 'use Foo;'编译和运行,所以哪一个我应该使用,为什么?
当我这样做时use Foo:ver<1.0>;,将加载模块的1.0版本Foo。但是,当我这样做时会发生什么use Foo;呢?
我想做这样的事情:
die "Fatal error: application version $MY-APPLICATION-VERSION"
Run Code Online (Sandbox Code Playgroud)
由于Perl6模块无法假定打包文件的相对位置(例如,已安装的模块全部放入平面目录结构中),所以我不能这样做$?FILE.IO.add("../META6.json").slurp。有没有办法在可能安装或未安装的Perl6应用程序/模块中获取META6.json中声明的版本?
我在.one结点和范围匹配方面遇到了一些问题:
> say (3,5).any ~~ (1 .. 9)
any(True, True)
> say so (3,5).any ~~ (1 .. 9)
True
> say so (3,5).one ~~ (1 .. 9)
False
> say so (3,0).one ~~ (1 .. 9) # expect True because 0 not in range and 3 is
False
> say so (3,0).any ~~ (1 .. 9)
True
> say so (0, 3).one ~~ (1..9) # expected True; 0 not in range; exactly one item (3) is in range
False
> …Run Code Online (Sandbox Code Playgroud) 我需要根据用户提供的功能生成许多数据点。用户通过提示输入功能(“输入功能:”);我正在尝试使用EVAL,但我不断收到错误消息。最好的方法是什么?谢谢 !!!
> my $k = prompt("Enter function: ");
Enter function: sub x($a) { say $a * 2; };
> $k
sub x($a) { say $a * 2; };
> use MONKEY-SEE-NO-EVAL
Nil
> use Test
Nil
> EVAL $k
&x
> say x(4)
===SORRY!=== Error while compiling:
Undeclared routine:
x used at line 1
Run Code Online (Sandbox Code Playgroud)
另外,我在使用Q:f插入函数时也遇到了麻烦。
> Q:f { sub x($a) { say $a * 2; }; }
sub x($a) { say $a * 2; };
> &x
===SORRY!=== Error …Run Code Online (Sandbox Code Playgroud) 例如,当我运行我的简单代码时,我已经安装了Cro模块:
my %headers = {Authorization => OAuth realm="", oauth_consumer_key="xxxxxxxxxxxxxxxx", oauth_nonce="29515362", oauth_signature="KojMlteEAHlYjMcLc6LFiOwRnJ8%3D", oauth_signature_method="HMAC-SHA1", oauth_timestamp="1525913154", oauth_token="xxxx-xxxxxxxxxxxxxxxxxx", oauth_version="1.0", User-Agent => Cro};
my $resp = await Cro::HTTP::Client.get: 'http://api.fanfou.com/statuses/home_timeline.json',
headers => [
user-agent => 'Cro',
content-type => 'application/json;charset=UTF-8',
|%headers
];
say $resp.header('content-type'); # Output: application/json; charset=utf-8;
my Str $text = await $resp.body-text();
Run Code Online (Sandbox Code Playgroud)
它说'无法解析媒体类型 application/json; charset=utf-8;
Died with the exception:
Could not parse media type 'application/json; charset=utf-8;'
in method parse at /Users/ohmycloud/.perl6/sources/5B710DB8DF7799BC8B40647E4F9945BCB8745B69 (Cro::MediaType) line 74
in method content-type at /Users/ohmycloud/.perl6/sources/427E29691A1F7367C23E3F4FE63E7BDB1C5D7F63 (Cro::HTTP::Message) line 74
in …Run Code Online (Sandbox Code Playgroud) zef有一个子命令的--deps-only标志,install只安装模块的依赖项.
zef install --deps-only .
Run Code Online (Sandbox Code Playgroud)
这将安装depends对象中引用的所有模块META6.json.是否有类似的标志来安装test-depends对象中的所有模块META6.json?
我想创建一个在 Windows 中设置环境的 GitHub 操作,运行一些 Powershell 命令。尽管这可以作为一个步骤轻松完成,但似乎没有办法为此创建完整的 GitHub 操作。如果我使用这个:
name: 'Rakudo Star fix for windows'
description: 'Updates zef for RakudoStar'
author: 'JJ'
runs:
using: 'node12'
main: 'upgrade.ps1'
Run Code Online (Sandbox Code Playgroud)
除了 JS 脚本之外,似乎没有其他方法可以运行任何东西,甚至没有办法声明环境。我知道这在工作步骤中留待以后使用,但无论如何它看起来像一个黑客。有什么我在这里想念的吗?
在尝试使用 App::Mi6 命令将新模块上传到 zef 时,出现了我以前从未见过的奇怪错误mi6 release:
==> Step 9. UploadToZef
Are you sure you want to upload Directory-0.0.1.tar.gz to Zef ecosystem? (y/N) y
Executing /Users/steve/.rakubrew/versions/moar-2022.12/bin/rakudo -e use Fez::CLI --file=Directory-0.0.1.tar.gz upload
>>= Looking in "Directory-0.0.1.tar.gz" for META6.json
=<< No single root directory found, all dists must extract to a single directory
Failed
in method upload at /Users/steve/.rakubrew/versions/moar-2022.12/share/perl6/site/sources/12D2D4FC78FDF40E8B7DEC72AF31ECED31A67D08 (App::Mi6::Fez) line 19
in method run at /Users/steve/.rakubrew/versions/moar-2022.12/share/perl6/site/sources/A4949DB54562D3B5154DD447B5CC2C730F09B0E5 (App::Mi6::Release::UploadToZef) line 24
in method run at /Users/steve/.rakubrew/versions/moar-2022.12/share/perl6/site/sources/BDF7095037EE976677901A8557FD533DCDC6FD65 (App::Mi6::Release) line 49
in method cmd …Run Code Online (Sandbox Code Playgroud) 因此,我尝试向资源添加新的指标趋势,但总是收到以下错误:
Too few arguments to function Laravel\Nova\Resource::__construct(), 0 passed in /crm/nova/src/Metrics/Trend.php on line 116 and exactly 1 expected {"userId":1,"exception":"[object] (Symfony\\Component\\Debug\\Exception\\FatalThrowableError(code: 0): Too few arguments to function Laravel\\Nova\\Resource::__construct(), 0 passed in crm/nova/src/Metrics/Trend.php on line 116 and exactly 1 expected at /crm/nova/src/Resource.php:108)
Run Code Online (Sandbox Code Playgroud)
我正在尝试从数据库表“报告”中的“ph_value”列接收数据。
<?php
namespace App\Nova\Metrics;
use Illuminate\Http\Request;
use Laravel\Nova\Metrics\Trend;
use App\Nova\Report;
class ph extends Trend
{
/**
* Calculate the value of the metric.
*
* @param \Illuminate\Http\Request $request
* @return mixed
*/
public function calculate(Request $request)
{
return $this->countByDays($request, Report::class, …Run Code Online (Sandbox Code Playgroud) perl6 ×9
zef ×3
package ×2
raku ×2
cro ×1
dependencies ×1
eval ×1
fez ×1
function ×1
junction ×1
laravel ×1
laravel-nova ×1
metadata ×1
module ×1
php ×1
powershell ×1
range ×1
versioning ×1
web ×1