我正在寫一個腳本,它從功率計讀取數據。我已經確定了幾個設備使用的瓦數,並且有一個變量可以識別設備開啓時的瓦數「跳躍」。我已經聲明的每個設備的瓦數爲一個範圍,並宣佈包含所有器件陣列的陣列如下 -Perl匹配變量與數組陣列
@device1 = (30..40);
@device2 = (50..70);
@device3 = (100..150);
@device_array1 = (\@device1, \@device2, \@device3);
腳本讀取來自流量計的輸出,併產生一個$watts_jump
變量。然而,我無法找到一種工作方法來匹配@device_array1
及其「子」陣列的變量。
我應該做一個grep
還是使用List::Utils 'first'
的方法?
我已經試過以下 -
use List::Utils 'first';
my $device = first { /$watts_jump/ } @device_array1;
,並作爲替代grep的字符串的方法,但沒有找到匹配,並報告了回去。如果我print "$device_array1[1][2]\n";
或變化 - 它確實返回正確的值。
如果匹配,我需要什麼相匹配,而不是它的索引e.g -
$watts_jump
= 55,因此$device = $device2
任何幫助或指針示例將受到歡迎。正如你可能會說這是我第一次嘗試用perl和我的第一篇文章認真做任何事情,所以要溫和。指導我的perldoc的第一個人是從我的聖誕卡片名單:-)
TIA
我不確定你要找什麼信息。假設您已經確定了正確的數組,那麼您的腳本將如何處理它? – melpomene
我正在記錄用於數據庫的總瓦數併爲設備提供單獨的表格。所以當我看到跳過1850瓦(水壺)時,腳本會識別跳轉並通過打開設備的次數和總持續時間更新表格。 – RoyK
有興趣知道當兩個設備具有(大致)sama瓦數時如何解決問題。 – rbm