LINUX.ORG.RU

perl, локальные глоб переменные


0

0

 #я так понял это объявление глоб перем ?
 use vars qw($y, $x, $sheet);  
 use vars qw(@dropcat,@ignorewords);
        
 (@dropcat,@ignorewords) =(GetDropCats(), GetIgnoreWords() );
        
 openXls ();
      
 readXls ();

sub openXls
{
    ....   
    my $oExcel = new Spreadsheet::ParseExcel;    
    my $oBook = $oExcel->Parse($q->param('xls'));
    $sheet = $oBook->{Worksheet}[0];
    
    # вроде как sheet равен 0, хотя ображение 
    # $cellvalue = $sheet ->{Cells}[$x][$y]->Value;   
    # работает, как так ?
    print 'sheet='.$sheet.'<br />'; 
}

sub readXls
{

 #  тоже 0 
    print $sheet.'<br />';
    @_session = ( [], [] );
    
    while( условие )
      readCell(__LINE__);
...
}


скрипт работает, но почему $sheet = 0 ?
если просто зделать 
my $sheet1 = $oBook->{Worksheet}[0];
print $sheet1  - выводит hash(xxx)

почему тогда там ноль ???
не могу уснуть !!! ((((

> почему тогда там ноль ???

Debug it! =)

boombick ★★★★★
()

print 'sheet=' . $sheet->{name} . '<br/>';
$sheet - это не 0, это хеш. А выводится он по разному из-за контекста. При выводе "sheet" . $sheet . "<br/>" он приводится к скаляру, тут вообще все что угодно может оказаться =)

Вообще-то вот тут http://search.cpan.org/~szabgab/Spreadsheet-ParseExcel-0.32/lib/Spreadsheet/Par
seExcel.pm#Worksheet есть Synopsis.

golubeff
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.