gpt4 book ai didi

perl - 对 PERL PDL 变量执行正则表达式

转载 作者:行者123 更新时间:2023-12-04 17:10:35 31 4
gpt4 key购买 nike

是否可以在 n 维上执行正则表达式 PDL 多变的?

例如,我可以通过执行将 100 添加到所有元素

$a1 = pdl [1,2]; 
print $a1 + 100;

但是,如果我的数组是一堆我想对其执行某些任务的字符串,该怎么办。例如,这失败了:
$a = pdl ['suze','david'];
$a =~ s/suze/female/;
print $a;

不确定这是否可能,但提前致谢。

最佳答案

关键是, PDL 是专为科学和批量数字数据处理和显示而设计的 perl 扩展。所以它真的不是为字符串操作而设计的。当您尝试遍历 piddle 时:

use strict;
use warnings;
use PDL;

my $a = pdl ['suze','david'];
print $_ . "\n" foreach ($a->list);

你会得到:
Argument "suze" isn't numeric in subroutine entry at Basic/Core/Core.pm.PL (i.e. PDL::Core.pm) line 1296, <DATA> line 207.
0
0
Argument "david" isn't numeric in subroutine entry at Basic/Core/Core.pm.PL (i.e. PDL::Core.pm) line 1296, <DATA> line 207.

当您深入了解 POD 时,您会发现:
$a = pdl(SCALAR|ARRAY REFERENCE|ARRAY|STRING);

对于 STRING 的构造函数和后续文本

The string version of pdl also allows you to use the strings bad, inf, and nan, and it will insert the values that you mean (and set the bad flag if you use bad). You can mix and match case, though you shouldn't.



回到你的主要问题,你为什么用 PDL对于字符串? - 为什么不使用简单的数组?
use strict;
use warnings;
use Data::Dumper;

my $a = ['suze','david'];
s/suze/female/ for @{$a};
print Dumper $a;

输出:
$VAR1 = [
'female',
'david'
];

关于perl - 对 PERL PDL 变量执行正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24132321/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com