2017-03-06 41 views
2

這段代碼有什麼問題嗎?Perl - 無用的使用登錄void context

我得到一個錯誤:Useless use of log in void context at ./test.pl line 12.

#!/usr/bin/perl 

use strict; 
use warnings; 

log(); 

sub log { 
    print "Test"; 
    return; 
} 

回答

6

log是一個內置的Perl函數。解決方法之一是重命名你的子:

use strict; 
use warnings; 

mylog(); 

sub mylog { 
    print "Test"; 
    return; 
} 
+1

啊,謝謝:) .. – tomsk

+0

@tomsk此外,如果你已經調用前定義'log',你將有一個警告'曖昧通話解決如CORE :: log()'。所以調用'main :: log();'會調用你定義的'log'(你可能不應該這樣做) – Dada

+0

注意'perlcritic'爲OP產生更有意義的警告信息:'子程序名是同名內建函數在線登錄...' – toolic