2013-11-02 6 views
0

엄격한 모드에서 CGI를 사용 중이며 약간의 변수와 혼동합니다. 나는 두 줄의 파일을 읽고있다. 둘 다 두 변수에 저장. 내가 그들에게 HTML을 사용하고 출력하기 때, 그것은이 내가perl의 가변 범위

open TEXT, "filename"; 
$title = <TEXT>; 
$about = <TEXT>; 
close TEXT; 

을하고있는 중이 것입니다 그러나 이것은 전역 변수 오류를 제공 전역 변수 오류

말한다. 이 문제를 해결하는 가장 좋은 방법은 무엇입니까?

+4

"전역 변수 오류"라는 오류가 없습니다. 대략적인 오류 메시지를 절대로 제공하지 마십시오. * 항상 정확한 * 메시지를 제공하십시오. – TLP

답변

4

해당 범위를 로컬로 만들려면 my과 함께 변수를 선언해야합니다.

  1. 회피 bareword는 파일 핸들 (예를 들어, FILE) : strict

    use strict; 
    use warnings; 
    
    open my $fh, '<', 'filename' or die $!; 
    my ($title, $about) = <$fh>; 
    close $fh; 
    

    또한 개선을 사용할 때 가장 좋은 방법 의무입니다. 대신 처리하는 로컬 파일을 사용하는 등 my $fh

  2. 파일 처리를 처리 할 때 die으로 처리
  3. 중고 오류
  4. 에 의해 지적 잘못 무슨 일이 일어나고 있는지 표시 @Suic
  5. use warnings에 의해 제안 $title$about의 결합 할당 @ TLP
+0

나는 또한 그것을 시도했다,하지만 내가 아래 html 섹션에서 그것을 액세스하려고하면 나타나지 않습니다. – user2055171

+0

인쇄 << END HTML

$ 제목

END_HTML; – user2055171

+2

'사용 경고 '는 길을 보여줍니다. – TLP