【问题标题】:Useless use of log in void context在无效上下文中无用的使用日志
【发布时间】:2020-03-27 04:39:49
【问题描述】:

这段代码有什么问题?

我收到一个错误: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;
}

【问题讨论】:

    标签: perl


    【解决方案1】:

    log 是一个内置的 Perl 函数。解决此问题的一种方法是重命名您的子:

    use strict;
    use warnings;
    
    mylog();
    
    sub mylog {
        print "Test";
        return;
    }
    

    【讨论】:

    • @tomsk 此外,如果您在调用它之前定义了log,则会收到警告Ambiguous call resolved as CORE::log()。所以调用main::log(); 将调用你定义的log(你可能不应该这样做)
    • 请注意,perlcritic 会为 OP 生成更有意义的警告消息:Subroutine name is a homonym for builtin function log at line...
    • 您可以通过perldoc -f logperldoc.perl.org/functions/log.html 阅读有关 log() 的信息
    • 替代方案是use subs qw( log );
    猜你喜欢
    • 2022-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-30
    • 1970-01-01
    • 1970-01-01
    • 2017-08-06
    • 1970-01-01
    相关资源
    最近更新 更多