2013-11-01 71 views
0

我正在運行perl腳本來掃描多個主機。當我在Perl增加值而不是字符

$scanner->scan('-sS -p 1-1024 -sV -O --max-rtt-timeout 200ms 111.111.111.111'); 

放一臺主機運行良好,但是當我試圖通過解析一個文件,主機

$scanner->scan('-sS -p 1-1024 -sV -O --max-rtt-timeout 200ms $host'); 
的列表內添加一個變量值

該方案只是假定$主機人物,有無論如何解決這個問題?我使用nmap :: scanner作爲我的模塊。

感謝

回答

2

嘗試使用雙引號替換引號:

$scanner->scan("-sS -p 1-1024 -sV -O --max-rtt-timeout 200ms $host"); 

或將$host外:

$scanner->scan('-sS -p 1-1024 -sV -O --max-rtt-timeout 200ms '.$host); 
+0

謝謝,怎麼做 「」 $ host之前有什麼區別?在發佈之前,我試過了$ scanner-> scan(' - sS -p 1-1024 -sV -O --max-rtt-timeout 200ms'$ host); (沒有「。」,我有一個錯誤,但它現在有效) –

+0

@LeRay'.'是字符串連接操作符,你應該花一些時間來學習Perl語言,字符串插值和連接是非常基本的。這裏有一本[優秀的圖書](http://www.onyxneon.com/books/modern_perl/index.html)開始使用(包括印刷和免費的在線版本)。 – bonsaiviking

1

您正在使用的錯誤類型的引號

' 

不進行內插變量,以便

$x='fish'; 

$b='deep fried $x'; 

套$ b鍵deep fried $x

$ B = 「油炸$ X」;

套$ B到deep fried fish

請參閱perldoc perlop得到更多細節