Perl-在数组中搜索并保存结果
我正在尝试搜索xml文件中的文本,并尝试将结果保存在数组中。 基本上它是在搜索字符串“” Perl脚本Perl-在数组中搜索并保存结果,perl,variables,search,Perl,Variables,Search,我正在尝试搜索xml文件中的文本,并尝试将结果保存在数组中。 基本上它是在搜索字符串“” Perl脚本 my $infile = 'build.xml'; open my $input, '<', $infile or die "Can't open to $infile: $!"; my @finaldata = (); while (<$input>){ chomp; print "$1\n" if ($_ =~ /(http:.*html)/);
my $infile = 'build.xml';
open my $input, '<', $infile or die "Can't open to $infile: $!";
my @finaldata = ();
while (<$input>){
chomp;
print "$1\n" if ($_ =~ /(http:.*html)/);
push (@finaldata, $1);
}
print "$finaldata[$1]\n";
my$infle='build.xml';
打开我的$input,循环外部不存在$1
您需要像这样访问数据:
foreach(@finaldata){
print "$_\n";
}
<>我也会考虑改写:
while (<$input>){
chomp;
if ($_ =~ /(http:.*html)/) {
print "$1\n";
push @finaldata, $1;
}
}
while(){
咀嚼;
如果($\ux=~/(http:.*html)/){
打印“$1\n”;
推送@finaldata,$1;
}
}
循环外不存在$1
您需要像这样访问数据:
foreach(@finaldata){
print "$_\n";
}
<>我也会考虑改写:
while (<$input>){
chomp;
if ($_ =~ /(http:.*html)/) {
print "$1\n";
push @finaldata, $1;
}
}
while(){
咀嚼;
如果($\ux=~/(http:.*html)/){
打印“$1\n”;
推送@finaldata,$1;
}
}
请注意,无论正则表达式是否匹配,您都在将$1
推送到数组上。这可能会将数组中的几个元素设置为undef
。你应该这样做
while (<$input>) {
if ( /(http:.*html)/ ) {
print "$1\n";
push @finaldata, $1;
}
}
您正试图使用从正则表达式匹配中捕获的字符串为数组编制索引
应该是
print "$finaldata[0]\n"
或许
print "$_\n" for @finaldata
请注意,无论正则表达式是否匹配,都将$1
推送到数组上。这可能会将数组中的几个元素设置为undef
。你应该这样做
while (<$input>) {
if ( /(http:.*html)/ ) {
print "$1\n";
push @finaldata, $1;
}
}
您正试图使用从正则表达式匹配中捕获的字符串为数组编制索引
应该是
print "$finaldata[0]\n"
或许
print "$_\n" for @finaldata
您正在添加$1作为一个值,但在打印时您尝试将其用作索引。尝试:
print join(',', @finaldata);
您正在添加$1作为一个值,但在打印时您尝试将其用作索引。尝试:
print join(',', @finaldata);
感谢您的快速回复和帮助!感谢您的快速回复和帮助!感谢您的快速回复和帮助!感谢您的快速回复和帮助!感谢您的快速回复和帮助!感谢您的快速回复和帮助<代码>推送@finaldata,/(http:.*html)/代码>。最后,为@finaldata打印“$\un”代码>push@finaldata,/(http:.*html)/代码>。最后,为@finaldata打印“$\un”代码>