0
最初の関数内で配列を出力しましたが有効です。私は2番目の機能でそれを印刷することはできません。配列参照perlを印刷できません
エラーメッセージ:ARRAY REFとして文字列( "1")を使用できないConvertToVformat.plラインでの使用における "厳密な参考文献" 24
my $dir = cwd();
my $source_files = DetermineSourceFiles();
DetermineFileInfo($source_files);
sub DetermineSourceFiles {
my @source_files;
opendir my $dh, $dir or die "Cant open $dir: $!";
while (my $file = readdir($dh)) {
if ($file =~ /(.*?\d+.bin)/) {
push @source_files, $file;
}
}
closedir $dh;
return \@source_files;
}
sub DetermineFileInfo {
my $source_files = (@_);
foreach my $file (@$source_files) {
print "$source_files\n";
}
}
'my $ source_files =(@ _);'という行は '$ source_files'スカラーに割り当てられ、スカラーコンテキストになります。ここで配列の要素の数、ここでは '1'を使います。 'my($ source_files)= @ _; 'と置き換えてください。数日前から実際には重複:[this post](https://stackoverflow.com/a/46232503/4653379)を参照してください。 – zdim
ありがとう、その問題を修正しました。また、$ source_filesの前後にかっこを入れるだけで問題は解決しました。私はシフトの目的を理解していません – jelly
エラーはまったく同じなので(コードは違っていますが)、同じリンクで上記のコメントが解決されたので、重複としてマークしています。これに問題がある場合はお知らせください。 – zdim