Perl用半冒号分隔字符串而不是全局

时间:2019-07-16 16:10:18

标签: perl

我有一个文件:

1:2; 3; 4

我想将该文件分解为以分号分隔的constuitiemt部分

#!/usr/bin/perl
use strict;
use warnings;

my $filename = shift @ARGV ;
open(my $fh, '<', $filename) or die "Could not open file $filename $!";

my @splitoncolong = split /;/, $fh ;
foreach my $wap (@splitoncolong) {
         print $wap ;
}

我明白了

GLOB(0x238947c)

我想要的是什么:

1; 
2; 
3; 
4; 

1 个答案:

答案 0 :(得分:2)

您忘了从文件句柄中读取内容。

#                              V   V
my @splitoncolong = split /;/, <$fh>;

您尝试分割文件句柄对象的方式,当用split进行字符串化处理时,它会变成您现在看到的全局引用表示形式。它在;上分割,产生一个结果,即字符串GLOB(0x...),并将其放入列表中。