gpt4 book ai didi

Perl 如果不工作?

转载 作者:行者123 更新时间:2023-12-01 06:07:31 26 4
gpt4 key购买 nike

这是我的代码:

#!/usr/bin/env perlsub start{    ...}sub stop{    ...}if (defined $ARGV[0]){    if ($ARGV[0]=='start') {start}    elsif ($ARGV[0]=='stop') {stop}    else {die "Unrecognized command: $ARGV[0]"}}

无论我做什么,它总是执行&start。我做错了什么吗?

我正在使用 Linux Mint 10 和 Perl 5.10.1。

最佳答案

您正在使用数字比较来检查字符串是否相等,这会先将参数转换为数字,然后再进行比较。

在这种情况下,'start' 不是数字,因此它被转换为 0$ARGV[0] 中的值(这里应该是一个词)也被转换,导致另一个 0if ( 0 == 0),始终为真。

您想改用 eq 字符串比较运算符:

if ($ARGV[0] eq 'start') { start }

参见 docs有关不同比较运算符的更多信息。

请注意(正如评论中所指出的那样)在脚本顶部包含 use warnings; 会导致 perl 从开始。始终包含 use warnings;use strict; 通常是最佳做法,因为它有助于尽早发现此类错误。

关于Perl 如果不工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4900868/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com