2016-06-08 46 views
0

的說法,我與在整數劃分代碼的工作:Perl的-s在師

$length = (-s $value1/$value2); 

我收到-s是未初始化值的誤差。那個-s參數是什麼意思?

+0

如果是'$ length =(-s $ value1)/ $ value2',這會更有意義。也就是說,它使用'$ value1'作爲文件的名稱,獲取它的大小,並將其除以$ value2' – Borodin

回答

4

參見-X

-s文件具有非零大小(返回大小以字節計)。

在這方面似乎沒有任何意義。該部門返回一個被認爲是可能不存在的文件名的數字。

+1

@simbabque:您是否還有腳本來生成給定perldoc頁面的降價鏈接? ;-) – choroba

+0

不,我按crtl + t鍵入'p foo'並複製它。我應該開始製作這樣的腳本。 – simbabque

2

-s運算符獲取文件名並返回大小(字節),如果發生錯誤則返回undef。當文件不存在或者權限不足時,最常發生錯誤。請參閱-X in perldoc

您的$value1/$value2將返回一個數字,然後-s將嘗試使用該數字作爲其名稱在當前目錄中查找文件。這可能會失敗,所以它返回undef

+0

*「'-s'運算符會獲取一個文件名並檢查大小是否爲零,並以字節爲單位返回大小。」*它不執行任何檢查:它僅返回文件的大小,爲零或其他 – Borodin

+1

@Borodin更好? – simbabque

相關問題