1
我正在寫一個Munin-Pluging,我喜歡從telnet會話捕獲屏幕輸出。 這樣的會話的輸出如下所示:通過NET獲得一個數組grenets:TELNET
...
0x00017 0x41b3f340 BPING 0 0 0 0 198 132 330
0x00018 0x41b47340 CHKFAILED 0 0 0 0 198 132 330
0x00026 0x41b4f340 CIP 0 0 0 0 370 264 634
0x0001e 0x41b57340 CONTROL 0 1 0 0 3876 2178 6054
0x01014 0x41b5f340 UNETSRVR 0 0 0 1 296 198 494
0x00037 0x41b67340 ---- 0 0 0 0 198 132 330
0x00000 0x43b67450 ---- 0 0 0 0 0 0 0
0x00000 0x4bb67450 ---- 0 0 0 0 5084 4224 9308
0x00000 0x49367450 ---- 0 0 0 0 14742 4158 18900
-------------------------------------------------------------------------------------------
SUMMARY : 2 40 5 7 4898229 2728176 7626405
該腳本中提取的屏幕內容到一個數組(@lines)。
#!/usr/bin/perl
use Net::Telnet();
use strict;
use warnings;
my $t = new Net::Telnet (Timeout => 10);
$t->port(777);
$t->open("192.168.0.1");
$t->buffer_empty;
my @lines = $t->waitfor(match =>"m/.* SUMMARY : .* \n/");
my @gagu = grep { "$_" =~ /^.*BPING.*\n/ } @lines;
print @gagu;
- 什麼類型的是數組@lines?
- 爲什麼我總是從grep獲取整個 內容而不是過濾的行?
- 是我從網絡獲得的數組:telnet不同於其他數組?
是的,我是新來的Perl。
在perl中沒有數組是不同的,它們只是包含不同的東西。如果您想查看數據中的內容,請使用['Data :: Dumper'](http://search.cpan.org/perldoc?Data%3A%3ADumper)模塊。 – TLP
我使用txt文件提供的輸入測試了腳本。它按照你的預期工作。請用Data :: Dumper檢查你的線陣列。 – Demnogonis