, 전역 변수를 올바르게 선언하려면 어떻게해야합니까? ALL
코드의이 조각 고려 : 이our $classwork = 0;
while(<INFILE>)
{
chomp;
next if $. == 1;
if($year >= 1992 && $year <= 1995)
{
$classwork = (split(/,/))[6];
print "Classwork is: ", $classwork, "\n";
}
if($year >= 1996 && $year <= 2001)
{
$classwork = (split(/,/))[-1];
}
print "Classwork is: ", $classwork, "\n";
if($year == 2002)
{
$classwork = (split(/,/))[-2];
}
if($year == 2003 || $year == 2004)
{
$classwork = (split(/,/))[23];
}
if($year >= 2005 && $year <= 2009)
{
$classwork = (split(/,/))[22];
}
if($year >= 2010 && $year <= 2012)
{
$classwork = (split(/,/))[20];
}
print "Classwork is: ", $classwork, "\n";
$line = <STDIN>;
}
마지막 인쇄 문은 변수를 인쇄 할하지 않습니다. 내가 '우리'라고 선언하거나 선언문에 주석을 달아도. 더 이상한 것은 첫 번째 반복에서만 발생한다는 것입니다. 파일에는 수천 개의 레코드가 있고 첫 번째 반복에는 변수 만 정의되지 않습니다. 이후의 모든 통화는 양호합니다.
어떤 생각이 벌어지고 있습니까?
감사합니다.
여기에'$ year'은 무엇입니까? 이 스크립트의 전체 텍스트입니까? – Suic
필드가 충분하지 않은 행이있을 수 있습니다. – choroba
그리고 전 왜 전역 변수를 선언해야하는지 혼란 스럽습니다. – Suic