簡體   English   中英

Perl 新手 - 在進行浮點比較時遇到問題

[英]new to Perl - having trouble with a floating point comparison

我是 Perl 的新手,正在編寫一個簡單的腳本來檢查已安裝的 VMware Fusion 版本是否大於 8.4。 我收到此錯誤:

syntax error at ./test.pl line 8, near ");"

這是腳本:

 @vmVersion = `defaults read /Applications/VMware\ Fusion.app/Contents/Info CFBundleShortVersionString`;

 @vmMinimum = 8.4;

if($vmVersion > $vmMinimum);

then print "compliant";

 else print "update required";

 fi

您擁有的代碼不是 Perl。 下面是看起來更像 Perl 的東西:

my $vmVersion = `defaults read '/Applications/VMware Fusion.app/Contents/Info' CFBundleShortVersionString`;
if ($vmVersion > 8.4) {
    print "compliant";
} else {
    print "update required";
}

注意兩點:

  1. 版本號不是浮點數。 您真的應該使用語義版本庫,例如SemVer ,進行版本比較。
  2. 您的消息可能應該包含換行符 ( \\n )。 如果沒有這些,當用戶運行您的程序時,他們的提示將在之后打印在一個有趣的位置。 :-)

我從沒見過

if($vmVersion > $vmMinimum);
...
fi

在 perl 之前,用塊大括號替換。

if($vmVersion > $vmMinimum) {
...
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM