Forum Webscript.Ru
Программирование => Perl => Тема начата: skooby от 19 Декабря 2007, 19:47:13
-
Доброго времени суток.
Проблема: Используя модуль Spreadsheet::Read, я считываю данные из ячейки файла Excel при условии, что ячейка содержит 20-ти значное число. Но при попытке просто вывести на экран данные из ячейки, на экране:
Use of uninitiliazed value in pattern (m//) at D:\\...\\conv.pl line 35.
Use of uninitiliazed value in pattern (m//) at D:\\...\\conv.pl line 35.
Use of uninitiliazed value in pattern (m//) at D:\\...\\conv.pl line 35.
Use of uninitiliazed value in pattern (m//) at D:\\...\\conv.pl line 35.
Use of uninitiliazed value in pattern (m//) at D:\\...\\conv.pl line 35.
...
Use of uninitiliazed value in pattern (m//) at D:\\...\\conv.pl line 35.
Use of uninitiliazed value in pattern (m//) at D:\\...\\conv.pl line 35.
скрипт:
#!Perl.exe -w
# ----------------------------------------
use strict;
use XBase; # dbf
use Spreadsheet::Read; # xls
# ------------------------------------------
my $count = 100;
my (@xls,@dbf) = ();
# - Считываем файлы ----------------------
while (<*.xls>) { chomp $_; push @xls,$_; }
while (<*.dbf>) { chomp $_; push @dbf,$_; }
# ------------------------------------------
&processing_xls(@xls);
sub processing_xls
{
my @xls_files = @_;
my $flag = 0;
if (length(@xls_files) != 0)
{
foreach my $xls (@xls_files)
{
my $ref = ReadData($xls);
for my $i (1..$count)
{
for my $j (\'A\'..\'Z\')
{
print $ref->[1]{"$j$i"} if $ref->[1]{"$j$i"} =~ m/[0-9]{20}/; # <-------- 35-я строка
}
print "\\n";
}
}
}
return 0;
}
-
Сделал проверку значения ячеек, выяснил что не все ячейки имеют значение и из-за этого появлялись такие сообщения. Вопрос отпал.