ポイントは、PDL
科学的および大量の数値データの処理と表示用に設計された perl 拡張機能です。したがって、実際には文字列操作用には作成されていません。ピドルを反復しようとすると:
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
pdlの文字列バージョンでは、文字列bad、inf、およびnanを使用することもでき、意味する値を挿入します (また、bad を使用する場合は bad フラグを設定します)。大文字と小文字を混在させることはできますが、そうすべきではありません。
主な問題に戻りますが、なぜPDL
文字列に使用するのですか? - 単純な配列を使用しないのはなぜですか?
use strict;
use warnings;
use Data::Dumper;
my $a = ['suze','david'];
s/suze/female/ for @{$a};
print Dumper $a;
出力:
$VAR1 = [
'female',
'david'
];