У меня есть файл, содержащий список адресов электронной почты, разделенных точкой с запятой, который настроен примерно так (но гораздо больше):
$ cat email_casper.txt
casper1@foo.com; casper2@foo.com; casper3@foo.com; casper.casper4@foo.com;
#these throw outlook error :
#casper101@foo.com ; casper100@foo.com
#cat /tmp/emailist.txt | tr '\n' '; '
#cat /tmp/emallist.txt | perl -nle 'print /\<(.*)\>/' | sort
Я хочу разбить его наточка с запятой - так что я засасываю весь файл в массив, предположительно содержимое разбито на точку с запятой.
#!/usr/bin/perl
use strict;
use warnings;
my $filename = shift @ARGV ;
open(my $fh, '<', $filename) or die "Could not open file $filename $!";
my @values = split(';', $fh);
foreach my $val (@values) {
print "$val\n";
}
exit 0 ;
Но файл награждает меня золотым смехом.Я просто не знаю, что происходит.
$ ./spliton_semi.pl email_casper.txt
GLOB(0x80070b90)
Если я использую Data :: Dumper, я получаю
#!/usr/bin/perl
use strict;
use warnings;
use Data::Dumper ;
my $filename = shift @ARGV ;
open(my $fh, '<', $filename) or die "Could not open file $filename $!";
my @values = split(';', $fh);
print Dumper \@values ;
Вот что возвращает Dumper:
$ ./spliton_semi.pl email_casper.txt
$VAR1 = [
'GLOB(0x80070b90)'
];